ruby on rails undefined方法的数组

Rya*_*yan 5 ruby-on-rails

我有一个拥有许多手机的用户我有一个
手机,它有很多通话摘要,
因此我的用户有很多通话摘要

现在到我的代码:

class User < ActiveRecord::Base
    has_many :phones
    has_many :call_summaries, :through => :phones
end  

class Phone < ActiveRecord::Base
    belongs_to :user
    has_many :call_summaries
end

class CallSummary < ActiveRecord::Base
    belongs_to :phones
end
Run Code Online (Sandbox Code Playgroud)

我想生成一个报告,显示属于该特定用户的电话的所有呼叫摘要.我进入控制器,这是我的代码:

def index
  @phones = Phone.find(:all, :conditions => ["user_id = ?", @current_user.id])
  @call_summaries = @phones.call_summaries.find(:all)
end
Run Code Online (Sandbox Code Playgroud)

但是这会返回此错误:

#Array的未定义方法`call_summaries':0x476d2d0

任何帮助将非常感谢.

Gre*_*ell 5

如果您设置了has_many:through关系,那么您应该能够:

@call_summaries = @current_user.call_summaries
Run Code Online (Sandbox Code Playgroud)

您的方法存在的问题是您正在调用call_summaries@phones集合,而不是单个电话实例.