2010年06月17日

Ruby on Rails date_select TypeError can't convert Symbol into StringCommentsAdd Star

data_selectとは?


以前紹介していますのでそちらをごらんください。

環境


rails2.2.2

can't convert Symbol into StringCommentsAdd Star


data_selectを使用するとなぜかこのエラーが出る様になりました。
どうやらi18nの
config.i18n.default_locale = :ja

こいつが悪いらしいです。

解決策1


$ vi ../lib/action_view/helpers/date_helper.rb
def translated_date_order
 begin
  I18n.translate(:'date.order', :local => @options[:locale]) || []
 end
end

// 上記を下記に書き換え
def translated_date_order
 begin
  order = I18n.translate(:'date.order', :locale => @options[:locale])
  if order.respond_to?(:to_ary)
   order
  else
   [:year, :month, :day]
  end
 end
end

ライブラリーを書き換えるとかなんかやな感じですけどね。
オーバーライドしようと思ったらなぜかできなかった。。。
まぁきっとなんかまちがっていたんだろぅ。

解決策2


$ vi config/locales/ja.yml
ja:
 date:
  formats:
   default: "%Y年%m月%d日"
   abbr_default: "%Y-%m-%d"
   short: "%b%d日"
   long: "%Y年%b%d日"
  day_names: [日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日]
  abbr_day_names: [日, 月, 火, 水, 木, 金, 土]
  month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
  abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
  order: [ :year, :month, :day ]

これで解決。
どうやら日本語のロケール情報がない為におこられていたようです。
posted by RicK at 12:17| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/38982088

この記事へのトラックバック