2015-06-13 133 views
1

我的應用程序允許用戶創建配置文件並輸入信息(描述,名稱等)。我希望他們能夠從下拉列表中選擇他們的語言,並將其選擇保存到用戶表中的記錄中。允許用戶從下拉列表中選擇選項

據我所知,我必須在配置文件表中有一個單獨的languages表,language_id字段,並使用options_from_collection_for_select來創建實際的下拉菜單。

我的問題是我需要做什麼對模型/控制器文件,使這一切工作?

回答

2

您需要定義一個名爲Language的模型,該表將負責存儲所有語言。我認爲:它將有一個字段類型爲language的字段。

rails g model Language language:string # though you don't need ':string' part 

在應用程序/模型/ language.rb:

class Language < ActiveRecord::Base 
    has_many :users 
end 

現在,您需要將language_id添加到用戶表,並且您將運行以下遷移:

rails g migration add_language_id_to_users language:references 

並相應更新User型號:

class User < ActiveRecord::Base 
    belongs_to :language 
    # other code 
end 

,然後從你的form,你需要發送一個language_id當你通過其他參數創建一個用戶,並在控制器中,你將不得不允許language_id像以下:

def user_params 
    params.require(:user).permit(:first_name, :last_name, :language_id) 
end 

而在你的控制器代碼,你只需要像往常一樣創建一個用戶,Rails將爲你做出魔術。

在控制器,平常代碼

@user = User.new(user_params) 
+0

歡迎您。如果你認爲答案是有效的,並幫助你,你可以接受它。 –

相關問題