datetime_selectをカスタマイズしたときのあれ

( Ruby )

なんか神経使った。Railsはいちいちつまずく。 デフォルトだとロケールも英語になっていてなんの問題もないけど、フォーマット変更したり、日本語にしたりするとさらに追加の設定が必要になったのでめも。

最初はデフォルトのロケールを日本語にしているとエラーが発生してたので調査しました。 yaml側でどうも解析できていないみたいだったのでboot.rbに明示的に記述を足してライブラリを読み込めるように しました。

# confg/application.rb
config.i18n.default_locale = :ja
# config/boot.rb
require 'yaml' # この行を追加
YAML::ENGINE.yamler= 'syck' # この行を追加

そんでもって日付のフォーマットを変更してみる

# config/locale/ja.yml
ja:
  date:
    order: [ :year, :month, :day ]
  datetime:
    order: [ :year, :month, :day, :hour, :min ]
# views/hoge/_form.html.erb
<%= f.datetime_select :disp_date, :use_month_numbers => true %>

うまくいきました。

■参考URL http://stackoverflow.com/questions/7045137/rake-tasks-from-cron-uninitialized-constant-yamlengine