您需要定义一个名为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)
欢迎您。如果你认为答案是有效的,并帮助你,你可以接受它。 –