2013-03-14 2 views
0

나는 다음과 같은 모델을 가지고 :액세스 모델 데이터

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 

    attr_accessible :name, :email, :password, :password_confirmation, :remember_me 

    has_many :rulesets 
end 

class Ruleset < ActiveRecord::Base 
    attr_accessible :title, :game_id, :user_id 

    validates :game_id, presence: true 
    validates :user_id, presence: true 
    validates :title, presence: true 

    belongs_to :user 
    belongs_to :game 
    has_many :rules 
end 

class Rule < ActiveRecord::Base 
    attr_accessible :description, :ruleset_id 
    belongs_to :ruleset 

    validates :description, presence: true 
    validates :ruleset_id, presence: true 
end 

나는 규칙의 규칙 세트의 수와 번호를 표시 할 사용자 대시 보드를 제어 PagesController라는 컨트롤러가 그 사용자는 가지고있다. 이것은, 내가 규칙 세트를 표시하려고 해요 내 컨트롤러

내 대시 보드보기에서
class PagesController < ApplicationController 

    def home 
    end 

    def dashboard 
    @rulesets = current_user.rulesets 
    end 
end 

과 같은 계산 규칙 :

<% if current_user.rulesets.any? %> 
    <li><%= @rulesets.count %> Ruleset</li> 
    <li><%= @rulesets.rules.count%> Rules</li> 
<% end %> 

이 난 그냥 시도하는 경우에 규칙 세트 카운트의 오른쪽 수를 반환 규칙 집합. 규칙을 시도하고 계산할 때이 값과 "정의되지 않은 메서드"규칙 "오류가 발생합니다. 사용자 규칙 집합에있는 규칙에 어떻게 액세스해야합니까?

답변

2

각 룰 세트의 모든 룰 세트와 룰을 계산해야합니다. 다음과 같이 사용하십시오 :

@rulesets.collect {|r| r.rules.count}.sum 
+0

아, 이거 작동합니다. 감사! –

+0

이 경우, 각 룰 세트는 | r | 목적? –

+0

아니요, ruleset은 @rulesets 변수에 저장됩니다. 주어진 규칙 집합에 대한 모든 규칙은 규칙 집합 배열을 반복 할 때 r에 저장됩니다. – johnkoht

0

규칙은 특정 룰 세트와 연관됩니다. id로 규칙 집합을 지정하고 ".rules.count"를 사용하여 THAT 규칙 집합과 관련된 모든 규칙을 계산해야합니다.

+0

나는이 작업을 수행하는 방법을 정확히 알지 못합니다. 컨트롤러의 @rulesets 변수에 저의 규칙 집합을 저장했습니다. 각 룰 세트를 통과 한 다음 룰을 추출하려면 어떻게해야합니까? –