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 %>

ルールセットを数えようとすると、これは正しい数のルールセットを返します。ルールを数えようとすると、これと「未定義のメソッドの「ルール」」エラーが発生します。ユーザーのルールセットにあるルールにアクセスするにはどうすればよいですか?

4

2 に答える 2

2

すべてのルールセットと各ルールセットのルールを数える必要があります。次のようなものを使用します。

@rulesets.collect {|r| r.rules.count}.sum
于 2013-03-14T04:47:32.410 に答える
0

ルールは特定のルールセットに関連付けられます。ルールセットをIDで指定してから、「。rules.count」を使用して、そのルールセットに関連付けられているすべてのルールをカウントする必要があります。

于 2013-03-14T03:31:05.493 に答える