如何根据枚举处理此模型关联?

时间:2011-04-13 02:54:53

标签: ruby-on-rails

我有一个用户模型,User.rb。

现在我有一张表格如下:

user_something

user_id
something_id
something_type

something_type的值来自我在rails代码中的枚举。 something_id可以是来自许多其他表的id,这意味着它代表了许多db表的id,而something_type将告诉我它是否是一篇文章,或者其他什么。

现在说我的Article.rb模型,我想创建一个user_something表的关联,它将列出something_type = 3和something_id = article_id的所有行。

select * from user_something where something_type = 3 and something_id = xxx

查询必须与users表进行内部联接才能获得用户集合。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您想使用polymorphic association

类似的东西:

class User
  belongs_to :somethingable, :polymorphic=>true
end

class OtherClass
  has_many :users, :as => :somethingable
end

class YetAnotherClass
  has_many :users, :as => :somethingable
end