继续在表单中下拉区域设置选择的方法是什么?
我有一个包含“lng”列的用户模型,其中存储了“en”、“fr”等 i18n 语言环境字符串。
我的目标是在下拉列表中列出所有语言“英语”、“法语”,并在表单更新时将正确的“en”、“fr”值存储在用户表中。
有什么方法可以解决这个问题?
继续在表单中下拉区域设置选择的方法是什么?
我有一个包含“lng”列的用户模型,其中存储了“en”、“fr”等 i18n 语言环境字符串。
我的目标是在下拉列表中列出所有语言“英语”、“法语”,并在表单更新时将正确的“en”、“fr”值存储在用户表中。
有什么方法可以解决这个问题?
您可以简单地使用选择标签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