我有两个型号,
item.rb的
class Item < ActiveRecord::Base
belongs_to :user
has_many :challenges
end
challenge.rb
class Challenge < ActiveRecord::Base
belongs_to :user
belongs_to :item
end
在我看来,我正在尝试计算
视图/项目/ index.html.haml
- @items.each do |i|
= i.challenge.count
挑战包含以下列:
项包含这些列
我收到此错误
undefined method `challenge' for #
就行了
= i.challenge.count
答案 0 :(得分:2)
它应该是challenges
(复数名词)。
= i.challenges.count
顺便说一句,因为每次调用SQL计数都非常昂贵,所以我建议使用counter_cache来更有效地查找所属对象的数量。
答案 1 :(得分:1)
实际上= i.challenges.count
没问题。
但你应该使用counter_cache。
ChallengeModel
belongs_to :item, counter_cache: item
移植
add_column :items, :challenges_count, :integer, default: 0
这些代码有助于减少无用的数据库流量。