我有一个用户模型,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表进行内部联接才能获得用户集合。
我该怎么做?
答案 0 :(得分:1)
类似的东西:
class User
belongs_to :somethingable, :polymorphic=>true
end
class OtherClass
has_many :users, :as => :somethingable
end
class YetAnotherClass
has_many :users, :as => :somethingable
end