1

フォームにロケール選択ドロップダウンを表示するにはどうすればよいですか?

「en」、「fr」などのi18nロケール文字列を格納する列「lng」を持つユーザーモデルがあります。

私の目標は、「英語」、「フランス語」のすべての言語がリストされたドロップダウンを作成し、フォームの更新時に正しい「en」、「fr」の値をユーザーテーブルに保存することです。

これを続ける方法は何でしょうか?

4

1 に答える 1

2

select タグ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のようなレール フォーム ヘルパーを使用できます。

 = 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 に答える