NoMethodError?Подсчет записей - PullRequest
0 голосов
/ 08 марта 2012

У меня есть следующие модели:

class Label < ActiveRecord::Base
  has_many :releases
end

class Release < ActiveRecord::Base
  belongs_to :label
  has_many :products
  has_and_belongs_to_many :tracks

  def self.releases_count
   self.count(:all)
  end
end

class Product < ActiveRecord::Base
  belongs_to :release

  has_many :releases_tracks, :through => :release, :source => :tracks      
  has_and_belongs_to_many :tracks

  def self.products_count
   self.count(:all)
  end
 end

В моем представлении метки / индекса я могу отображать количество релизов абсолютно точно, используя:

 <%= label.releases.releases_count %>

I 'пытаюсь сделать то же самое для продуктов, использующих:

 <%= label.releases.products.products_count %>

Но получите ошибку NoMethodError:

 undefined method `products' for #<Label:0x10ff59690>

Есть идеи?

У меня есть много других агрегаций, которые я хочу выполнить (подсчет треков и т. Д.), Поэтому некоторые рекомендации о том, где я иду не так, были бы очень полезны.

1 Ответ

3 голосов
/ 08 марта 2012

Вам необходимо определить свою ассоциацию производства / маркировки

class Label < ActiveRecord::Base
  has_many :releases
  has_many :products, :through => :releases
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...