2011-04-13 57 views
0

我有一個用戶模型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 

查詢將不得不內與用戶表連接,讓我的用戶的集合。

我該怎麼做?

回答

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 
+0

但在哪裏呢我的紅寶石枚舉合適嗎? – Blankman 2011-04-13 03:04:20

+0

你可以添加一些代碼來顯示你如何使用枚舉?我無法從問題中確切地知道你在找什麼。 – 2011-04-13 19:51:32