我有user model
和Language model
,其中语言模型包含不同的语言,我希望用户从该模型中选择语言,并且应该为相应的用户存储这些语言。假设有五种语言A, B, C, D, E
,那么用户必须从这些语言中进行选择。假设user 1
选择A and C
,而user 2
选择B and D
,则必须为该用户存储语言。我该怎么做呢?请帮帮我。
发布于 2012-11-28 13:01:07
您需要对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_id
和language_id
。此表中的每条记录都表示特定用户选择了特定语言。
发布于 2012-11-28 13:06:52
你可以通过关联来做到这一点,在你的例子中你可以尝试这样做:
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
https://stackoverflow.com/questions/13597891
复制相似问题