2012-04-13 61 views
0

我有@user變量,和我有資源表,然後我有的只是user_id說明和RESOURCE_ID如何使用Active Record通過rails中的關聯獲取這些記錄?

@user.resources.each作品顯然

@user.favorites.first.resource工作正常,但我希望所有的資源的收藏表。

@user.favorites.resources不起作用

resource.rb

belongs_to :category 
    belongs_to :user 
    has_many :favorites 
    has_many :resource_tags 
    has_many :tags, :through => :resource_tags 

user.rb

has_many :resources 
    has_many :favorites 

favorite.rb

belongs_to :resource 
    belongs_to :user 
+0

你可以發佈你的模型?特別是在收藏夾和資源之間尋找'has_many'關係和/或通過收藏夾將用戶連接到資源的'has_many:through'。 – rjz 2012-04-13 02:51:51

+0

爲你加上 – Tallboy 2012-04-13 02:56:26

+0

爲了確保我明白,用戶有很多資源,但其中一些資源是他們的最愛,它是通過收藏夾表定義的。如果是這樣的話,當你真正說的是用戶has_many:favorite_resources通過收藏夾。如果你明確地定義了,那麼你只需要調用@ user.favorite_resources ... – 2012-04-13 03:52:28

回答

2

嘗試:

@user.favorites.includes(:resource).collect(&:resource) 

這應該加載所有用戶的收藏夾中的資源,然後收集應該返回他們作爲一個數組。

+0

這很好。有沒有更傳統的方法,但它應該完成? – Tallboy 2012-04-13 06:18:51

+0

我認爲這是最傳統的紅寶石方式;-) – 2012-04-16 15:55:08

相關問題