2012-03-01 12 views
0

これは多くの(提案追跡)対1(パートナー)関係です。has_manyとbelongs_toの関連付けで問題が見つかりません。

私は@company.proposalTrackingを実行すると、それは私にProposalTrackingオブジェクトを返します@company.proposalTracking.reference

undefined method 'reference' for ProposalTracking:Classエラーを取得しています。ここで

は私のモデルである:私はどこソリューションを読んでいる私が取得したい何

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

結果それは1対多の関係であるため、パートナは複数のトラック提案を持つ可能性があるため、01を使用して最初のトラックを取得する必要がありますしかし、私はこれを試して、それを言う

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

助けていただければ幸いです!

+0

を取得するために反復処理する必要がある(理由にhas_manyの)ProposalTrackingインスタンスの配列です。パートナーに多くの提案トラッキングが必要なのか、それとも1つしかないのかどうかはわかりません。 –

+0

それは多対1のプロポーザルのトラッキング・ツー・パートナー関係です。したがって、パートナーには多くのプロポーザルの追跡があります。 –

答えて

0

それは

class Partner < ActiveRecord::Base 
    has_many :proposal_trackings 
end 

であるべきで、あなたは@company.proposal_trackings経由でアクセスすることができます。しかし、それはより良いここの関連を説明してください、実際には、各属性に

@company.proposal_trackings.map(&:reference)

+0

問題は、そのオブジェクトの参照属性のみを必要としないことです。そして、それはどのようにプロポーザルトラッキングではなく、プロポーザルトラッキングでなければなりませんか? –

+0

これはRailsの規約です。すべての属性で '@ company.proposal_trackings'配列を使用し、_each_ froで要素を繰り返し処理する場合は、 – iltempo

+0

ありがとう!何らかの理由で、 "s"が最後に働いた...ばかげた大会。しかし、私は 'has_many:proposalTrackings'を使っていました。 –

関連する問題