如何将一个模型的值保存在另一个模型中?

时间:2012-11-28 04:34:25

标签: ruby-on-rails ruby-on-rails-3 associations

我有user modelLanguage model,其中语言模型包含不同的语言,我希望用户从该模型中选择语言,并且应该为相应的用户存储语言。考虑有五种语言A, B, C, D, E,然后用户必须从语言中进行选择。假设user 1选择A and Cuser 2选择B and D则必须为该用户存储语言。我怎样才能做到这一点?请帮帮我。

2 个答案:

答案 0 :(得分:1)

您需要建立many-to-many关系的模型。如链接中所述,这可以通过声明

来完成
class User < ActiveRecord::Base
  has_and_belongs_to_many :languages
end

class Language < ActiveRecord::Base
  has_and_belongs_to_many :users
end

并创建一个名为language_users的新表来存储user_idlanguage_id。此表中的每条记录都表示特定用户已选择特定语言。

答案 1 :(得分:1)

您可以通过关联来实现,在您的情况下,您可以尝试:

class User < ActiveRecord::Base

has_and_belongs_to_many :languages

end

class Language < ActiveRecord::Base

has_and_belongs_to_many :users

end

或者您可以通过以下链接进行操作。

http://guides.rubyonrails.org/association_basics.html

http://www.tutorialspoint.com/ruby-on-rails/rails-models.htm