问题与has_many和belongs_to关联,找不到方法

时间:2012-03-01 16:50:30

标签: ruby-on-rails ruby

这是一个(建议跟踪)到一个(合作伙伴)关系。

undefined method 'reference' for ProposalTracking:Class

我收到@company.proposalTracking.reference错误

当我运行@company.proposalTracking时,它会返回ProposalTracking对象。

这是我的模特:

class ProposalTracking < ActiveRecord::Base
  set_table_name "Proposal_Tracking"
  belongs_to :partner
end

class Partner < ActiveRecord::Base
  has_many :proposalTracking
end

我想得到的是proposalTracking喜欢

的属性
@company = Partner.find(params[:id])
@company.proposalTracking.reference

但这会导致错误undefined method 'reference' for ProposalTracking:Class

我已经阅读了解决方案,因为它是一对多的关系,合作伙伴可能有多个跟踪提案,所以我必须使用.first抓住第一个,但我试过这个然后它说

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.reference

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

应该是

class Partner < ActiveRecord::Base
  has_many :proposal_trackings
end

您可以通过@company.proposal_trackings访问它。但这实际上是一个ProposalTracking实例的数组(因为has_many),你必须迭代才能获得每个属性

@company.proposal_trackings.map(&:reference)