如何处理基于枚举的此模型关联?

问题描述:

我有一个用户模型User.rb.如何处理基于枚举的此模型关联?

现在我有一个表,看起来像:

user_something 

user_id 
something_id 
something_type 

something_type的价值来自于一个枚举我在我的Rails代码。 something_id可以是来自许多其他表的id,这意味着它代表很多db表的id,而something_type会告诉我它是否是文章或其他内容。

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

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

查询将不得不内与用户表连接,让我的用户的集合。

我该怎么做?

你想用一个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 
+0

但在哪里呢我的红宝石枚举合适吗? – Blankman 2011-04-13 03:04:20

+0

你可以添加一些代码来显示你如何使用枚举?我无法从问题中确切地知道你在找什么。 – 2011-04-13 19:51:32