0

HABTM カテゴリのイベント モデルを取得しました。関係は正常に機能し、問題なくカテゴリから値を挿入/取得できます。

私の質問は、このカテゴリの値を国際化 (I18n) する方法があるかどうかです。

カテゴリ モデル

class Category < ActiveRecord::Base
 has_and_belongs_to_many :events
end

イベントモデル

class Event < ActiveRecord::Base
....
has_and_belongs_to_many :categories
....

_form.html.haml (イベント用)

- Category.all.each do |category|
 .field
   = check_box_tag "category_ids[]", category.id, @event.category_ids.include?(category.id)
   = category.name
4

1 に答える 1

0

カテゴリはほぼ固定されていると思います(そうでなければ、実際にそれらに対して国際化を行うことはできません)

1 つの解決策は、データベースにカテゴリをキー (アンダースコア付き) として保存し、各キーに対して i18n をロケール ファイルに追加することです。

en.yml

categories:
  some_category: "Some category text"
  some_other_category: "Some other category text"
  ......

そして、あなたが例えばそうするならCategory.all.map(&:name)["some_category", "some_other_category", ....]

そしてあなたの見解では:

- Category.all.each do |category|
 .field
   = check_box_tag "category_ids[]", category.id, @event.category_ids.include (category.id)
   = I18n.t("categories.#{category.name}")

これを動的に実行しようとしている場合、これは良い解決策ではないことに注意してください (その場合、翻訳をデータベースに保存する必要があり、これが役立つ場合があります) 。

于 2012-04-11T07:08:21.023 に答える