1

如何在表單中選擇區域選擇下拉菜單?軌道形式的界面語言選擇器?

我有一個用戶模型列「lng」,其中我存儲了「en」,「fr」等i18n語言環境字符串。

我的目標是下拉列表中的所有語言列出「英語」,「法語」和表格更新它存儲在用戶表中正確的「EN」,「fr」值。

這將是什麼方法呢?

回答

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助手:

= 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 
+0

thx很多這個作品我ñ基本知識,但因爲我使用simple_form它不正確顯示標籤。如果我這樣做:標籤=>「國家」它沒有顯示和= f.label「國家」打印標籤,但沒有正確的CSS。答案很好,但也許你知道如何以簡單的形式做到這一點? thx很多 – Rubytastic

+0

@Rubytastic,我已經更新了我的答案。 –

+0

thx很多完全做到了! – Rubytastic