Datetime型のプロパティについて、フォームで良い感じに表示する方法に手間取ったので備忘録。
実行環境
ruby 2.2.3p173
Rails 4.2.5
form.html.erb
<%# 例えば article オブジェクトに start_at(Datetime型) というプロパティを持っている場合 %>
<%= form_for @article, url: hogehoge_path do |f| %>
<%= f.label :start_at, '掲載開始日' %>
<%= raw sprintf(
f.datetime_select(
:start_at,# プロパティ名
{
start_year: Time.zone.now.prev_year.year,# 選択可能な開始年
end_year: Time.zone.now.next_year.year,# 選択可能な終了年
default: Time.zone.now,# デフォルトの年
use_two_digit_numbers: true,# 月日を2桁の値で表示
date_separator: '%s',# 年, 月
datetime_separator: '%s',# 日
time_separator: '%s'# 時
},# オプション
{ class: 'date-select' }# htmlオプションを指定する場合は別で指定
),
'年 ', '月 ', '日 ', '時 ') + '分'# 分 は最後につけ加えられる
%>
<% end %>
separatorの情報って意外と少なくて苦労しました…。