Ruby on rails 3 Rails 3.1,habtm关系中的价值内部化?
我得到了一个事件模型,它包含了两个类别。这种关系运作良好,我可以毫无问题地从类别中插入/检索值 我的问题是,有没有一种方法可以将这些类别的价值观相互融合 类别模型Ruby on rails 3 Rails 3.1,habtm关系中的价值内部化?,ruby-on-rails-3,ruby-on-rails-3.1,internationalization,i18n-gem,Ruby On Rails 3,Ruby On Rails 3.1,Internationalization,I18n Gem,我得到了一个事件模型,它包含了两个类别。这种关系运作良好,我可以毫无问题地从类别中插入/检索值 我的问题是,有没有一种方法可以将这些类别的价值观相互融合 类别模型 class Category < ActiveRecord::Base has_and_belongs_to_many :events end 我假设这些类别基本上是固定的(否则你就不能对它们进行任何i18n) 一种解决方案是将数据库中的类别保存为键(带下划线),并为每个键将i18n添加到语言环境文件中: en.yml c
class Category < ActiveRecord::Base
has_and_belongs_to_many :events
end
我假设这些类别基本上是固定的(否则你就不能对它们进行任何i18n) 一种解决方案是将数据库中的类别保存为键(带下划线),并为每个键将i18n添加到语言环境文件中:
en.yml
categories:
some_category: "Some category text"
some_other_category: "Some other category text"
......
如果您这样做,例如Category.all.map(&:name)
将导致[“某些类别”、“某些其他类别”…]
在你看来:
- Category.all.each do |category|
.field
= check_box_tag "category_ids[]", category.id, @event.category_ids.include (category.id)
= I18n.t("categories.#{category.name}")
注意,如果您试图动态地执行此操作,那么这不是一个好的解决方案(如果是这种情况,则需要将翻译存储在数据库中,并且可能会有所帮助)
en.yml
categories:
some_category: "Some category text"
some_other_category: "Some other category text"
......
- Category.all.each do |category|
.field
= check_box_tag "category_ids[]", category.id, @event.category_ids.include (category.id)
= I18n.t("categories.#{category.name}")