2011-03-24 3 views
0

여러 애셋에 여러 개의 뷰를 생성하는 여러 블로그에 임베드 된 애셋의 뷰 수를 계산해야합니다.Rails 3의 조인 협회

UML diagram

나는 3레일을 사용하고 있는데 나는 다음과 같은 작업을 기다리고 있었다 : 예상대로

class Asset < ActiveRecord::Base 
    has_many :embeds 
end 

class Embed < ActiveRecord::Base 
    belongs_to :asset 
    has_many :views 
end 

class View < ActiveRecord::Base 
    belongs_to :embed 
end 

class Assets < ApplicationController 
    def show 
    asset = Asset.find_by_id(params[:id]) 
    @views = asset.embeds.views.count 
    end 
end 

는 물론, 그것은 작동하지 않았다. 왜 그런가요?

그리고 이것에 가장 적합한 방법은 무엇입니까?

답변

1

당신이 필요가 has_many (포함, 원시 SQL ... 조인)입니다 :

class Asset < ActiveRecord::Base 
    has_many :embeds 
    has_many :views, :through => :embeds 
end 

통해 그럼 그냥 이렇게 : 그것은

@views = asset.views.size 
+0

의 그! 이 솔루션은 꽤 잘 작동합니다. –