ActiveRecord关联用户选择的“主题”

时间:2011-12-04 05:15:24

标签: ruby-on-rails activerecord

我正在设置一个Rails 3.1应用程序,用户可以在其中将页面的“主题”更改为几个预制主题之一。我无法弄清楚哪个ActiveRecord关联正确地模拟了用户和主题之间的关系。

我想写一些类似的东西:

class User < ActiveRecord::Base
  has_one :theme

class Theme < ActiveRecord::Base
  belongs_to_many :users

但是“belonds_to_many”不是真正的关联,并且has_one将外键放在Theme表中。 (根据Association Basics

ActiveRecord“用户”拥有单个“主题”的规范方法是什么,许多“用户”可以使用“主题”?

1 个答案:

答案 0 :(得分:0)

在这种情况下,用户应该属于主题。

class User < ActiveRecord::Base
  belongs_to :theme
end

class Theme < ActiveRecord::Base
  has_many :users
end

在这种情况下,用户表将有一个名为theme_id的字段。

在这种情况下,从英语语言的角度考虑,belongs_to感觉很奇怪,因为用户不应该真正属于主题。但是,一般的经验法则是包含外键的模型属于不具有外键的模型。