web制作をしてて日付や時刻を入力するためのフォームを作ることがよくある。
Railsには年月日時分を自動的に作成してくれるヘルパーメソッドがある。今まで知らずに地道にドロップダウンリストを作成してしまっていた。。
便利なのでまとめておく。
4つのヘルパーメソッドがある
モデルに対応したフォーム | 単純な入力項目 | |
---|---|---|
日付のみ | date_select | select_date |
日時も含む | datetime_select | select_datetime |
使い方
date_select(object_name, method, options = {}, html_options = {}) datetime_select(object_name, method, options = {}, html_options = {}) select_date(date = Date.current, options = {}, html_options = {}) select_datetime(datetime = Time.current, options = {}, html_options = {})
オプションの説明
オプションに関してはほぼ共通。
オプション | 説明 |
---|---|
:prefix => 'period' | field名のprefix(接頭辞)。params[:prefix名]で値が取れるようになる。 |
:order => [:month, :year, :day] | 表示順を指定する。デフォルトは年月日の順。 |
:date_separator => '/' | 項目間の区切り。デフォルトは区切りなし。 |
:prompt => true | 選択リストの一番上の表示について。個別の指定も可能。 |
:include_blank => true | 選択リストの一番上をブランクにする。 |
:use_month_numbers => true | 月を数字で表す。デフォルトはfalseで、"January"のように表示される。 |
:use_short_month => true | 月を短縮して表す。"January"なら、"Jan"となる。 |
:start_year => Date.today.year | 選択可能な年の範囲のを指定。デフォルトは現在マイナス5 |
:end_year => Date.today.year + 1 | 選択可能な年の範囲を指定。デフォルトは現在プラス5 |
:discard_year => true | 年を非表示にする。discardは"捨てる"という意味。 |
:discard_month => true | 月を非表示にする。 |
:discard_day => true | 日を非表示にする。 |
- 例
<%= select_date Date.today,:prefix=>"period_to",:use_month_numbers => true %> <!-- params[:period_to]で値を取得できる -->
入力した日付を維持する方法
日付を入力して、検索などをしたとき、その日付がフォームに残るようにしたいことは結構ある。
その時、select_dateと、select_datetimeの場合は、以下のようにすれば値を保持できる。
controllerで、
if params[:date] year = params[:date][:year].to_i month = params[:date][:month].to_i day = params[:date][:day].to_i else year = Time.now.year.to_i month = Time.now.month.to_i day = Time.now.day.to_i end @date = Time.mktime(year,month,day)
として、日付の値をゲットする。
viewでは、
<% time = @date || Time.now() -%> <%= select_date(time, {:use_month_numbers => true, :start_year => Time.now.year - 1, :end_year => Time.now.year + 1 }) %>
とすれば値を保持できる。
参考
- floatingdays: Railsの日付選択ヘルパー (select_date)
- Railsで忘れそうなHelperメソッドメモ | 変なヤバいもんログ
- ActionView::Helpers::DateHelper
- select_dateと値の変換: とりあえずやってみた
- 作者: 高橋征義,諸橋恭介
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2008/05/31
- メディア: 単行本
- 購入: 37人 クリック: 567回
- この商品を含むブログ (95件) を見る
お読み頂きありがとうございます。
少しでもお役に立てたらクリックお願いします↓。
◆◆このブログのサイトマップへ◆◆