LoginSignup
22
23

More than 5 years have passed since last update.

[rails]date_selectを使ってフォームから日付を入力できるようにする。

Last updated at Posted at 2017-09-04

フォームから日付を入力できるようにしたいと思っていましたが、なんだか大変そうなので後回しにしていました。

フォームから日付を入力する。

調べてみたところ、htmlでは以下のように書けばカレンダー付きで日付を入力するフォームが、簡単に生成できます。

#html
<input type="date">

ということはrailsでも、当然このようなフォームの生成は想定されており、簡単に作ることができるはずです。

date_select

探して見るとdate_selectというのがありました。

リファレンス

#new.html.erb
= date_select :date, Date.today, use_month_numbers: true

様々なoptionが用意されており、かなり細かい設定までできるようです。
このメソッドを使用すると簡単に日付入力ができてしまいます。

params

このフォームから受け取ったパラメーターはparamsで以下のようになります。

date: <ActionController::Parameters {"2017-09-04(1i)"=>"2017", "2017-09-04(2i)"=>"9", "2017-09-04(3i)"=>"4"} permitted: false>

これどうやって扱うんだ……??? と思いましたが、Record.newなどとした時点で、このデータはcreated_atカラムに自動的に挿入されているようです!

その他

他にもいろいろあるようです。

datetime_select

スクリーンショット 2017-09-04 15.44.17.png

date_field_tag

スクリーンショット 2017-09-04 15.45.32.png

いろいろ用意されているみたいですね!

22
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
23