我有一个模型叫它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
我认为它更干净。但是,要做到这一点,我需要能够从块中引用实例变量 wins_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
但这似乎很笨拙。任何人都知道如何从块中引用调用实例变量?