と呼ばれるモデルがProject
あり、多くのProposals.
Project モデルには、という属性があります。winning_proposal_id
今、私は提案のための has_many だけでなく、勝者の提案を見つけるためにこのようなものを持っています:
belongs_to :winning_proposal, :class_name => "Proposal", :foreign_key => "winning_proposal_id"
has_many :proposals, dependent: :destroy
そこから私は:
@project.winning_proposal
勝利した提案を参照するためですが、私はこれのファンではありません。
私が好むのは、次のようなものです。
@project.proposals.winner
私はそれがよりきれいだと思います。ただし、これを行うには、ブロック内からインスタンス変数 wining_proposal_id を参照できる必要があります。
has_many :proposals, dependent: :destroy do
def winner
self.where(id: winning_proposal_id).first
end
end
しかし、それはうまくいきません。私はこれができると信じています:
has_many :proposals, dependent: :destroy do
def winner
self.where(id: self.project.first.winning_proposal_id).first
end
end
しかし、それは不親切に思えます。ブロック内から呼び出し元のインスタンス変数を参照する方法を知っている人はいますか?