rails 独学して軽くにちゃんまとめつくる

読者です 読者をやめる 読者になる 読者になる

rails のフォームで 「年と月」だけとか「年」だけの入力欄をつくる

data_select か datetime_select で日付を入力したいけど、何日とか時間がいらなくて、年と月だけで十分という場合がある。そういうとき、これらの XXXX_select のオプションに discard_day: true とつけてやるといい。

<%= form_for @user do |f| %>
  <%= f.date_select :date, discard_day %>
<% end %>

とするとうまく年と月だけが表示されたフォームができあがる。

f:id:mooooooooooriiiiii:20170515174831p:plain

上で作成した入力欄で、2017年3月として保存される値は “2017-03-01” となる。日にちは強制的に 1 日になるのだ。

ちなみに年だけがほしければ discard_month としてやればいい。すると

f:id:mooooooooooriiiiii:20170515175128p:plain