Ruby on rails rails 3中的I18n下拉选择,国际化并在值内获取ID值="&引用;

Ruby on rails rails 3中的I18n下拉选择,国际化并在值内获取ID值="&引用;,ruby-on-rails,internationalization,drop-down-menu,selection,Ruby On Rails,Internationalization,Drop Down Menu,Selection,我正在尝试将数组中的字符串国际化,以填充下拉选择表单字段。下面我发布了来自谷歌博客帖子的代码(包括信用链接) 我想做的是 have value=“1”,因此在值中包含整数而不是文本(使用当前选项,文本也会插入值中) 我想这样做是因为我有一个配置文件表,上面有列,比如education:integer。我不知道这是否是保存数据的最佳方法,但我认为这是因为单个整数在数据库中占用的空间更少 对下面提供的代码和解决方案有何评论?有没有更好的方法 我有一个国家列表,我已经在我的数据库中插入了类似Dat

我正在尝试将数组中的字符串国际化,以填充下拉选择表单字段。下面我发布了来自谷歌博客帖子的代码(包括信用链接)

我想做的是

  • have value=“1”,因此在值中包含整数而不是文本(使用当前选项,文本也会插入值中)
  • 我想这样做是因为我有一个配置文件表,上面有列,比如education:integer。我不知道这是否是保存数据的最佳方法,但我认为这是因为单个整数在数据库中占用的空间更少
  • 对下面提供的代码和解决方案有何评论?有没有更好的方法
我有一个国家列表,我已经在我的数据库中插入了类似DataCountrys的数据,但这不容易翻译,我想我必须遵循下面描述的代码,以使其更易于维护和翻译,从而为我的应用程序中的每个小列表(下拉值)删除一个数据库表

希望有人能提前澄清以上感谢

我遵循了google groups帖子上的建议:

在您的模型中:

类作业
  def translated_job_category
    I18n.t(job_category, :scope => :job_categories)
  end
结束

在助手中:

module JobsHelper
  def job_categories
    I18n.t(:job_categories).map { |key, value| [ value, key ] }
  end
end
在你看来:

<%= f.select :job_category, job_categories %>

helper方法创建select helper能够理解的数组。 它将缩短的键(“本科”、“研究生”等)保存在 数据库,作为某种可枚举的。请确保它们保持不变 所有语言

如果要显示对象的作业类别,可以执行以下操作: @job.translated\u job\u类别以获取转换后的值

<%= f.select :job_category, job_categories %>