1

继续在表单中下拉区域设置选择的方法是什么?

我有一个包含“lng”列的用户模型,其中存储了“en”、“fr”等 i18n 语言环境字符串。

我的目标是在下拉列表中列出所有语言“英语”、“法语”,并在表单更新时将正确的“en”、“fr”值存储在用户表中。

有什么方法可以解决这个问题?

4

1 回答 1

2

您可以简单地使用选择标签http://guides.rubyonrails.org/form_helpers.html#the-select-and-option-tags

= form_for @user do |f|
  = f.select :lng, options_for_select([['English', 'en'], ['French', 'fr']], @user.lng)

我还建议将数组移动到常量的某个位置。例如,在它自己的模型 User 方法中。例如:

#models/user.rb
def self.lng_list
  [['English', 'en'], ['French', 'fr']]
end

#form
= form_for @user do |f|
  = f.select :lng, options_for_select(User.lng_list, @user.lng)

已编辑

在简单的形式中,您可以使用像这样https://github.com/plataformatec/simple_form#wrapping-rails-form-helpers的 Rails 表单助手:

 = f.input :lng do
   = f.select :lng, options_for_select(User.lng_list, @user.lng)

或者您可以使用collection选项https://github.com/plataformatec/simple_form#collections

= f.input :lng, :collection => User.lng_list
于 2012-06-02T18:31:24.693 回答