我的Rails应用程序中有两个模型/表:讨论和评论。每次讨论has_many
评论,每条评论belongs_to
进行一次讨论。为方便起见,我的讨论表还包含first_comment_id
列和last_comment_id
列。我希望能够为最后一个评论模型调用discussion.last_comment
,但以下(在我的讨论模型中)无法实现此目的:
has_one :first_comment, :class_name => "Comment"
has_one :last_comment, :class_name => "Comment"
当我调用discussion.last_comment
时,运行以下SQL:
SELECT * FROM `comments` WHERE (`comments`.discussion_id = 1) LIMIT 1
当我希望discussions.id
加入comments.discussion_id
discussions.last_comment_id
时,它会使用comments.id
列加入{{1}}。
我在这里使用了错误的关联类型吗?谢谢你的帮助!
答案 0 :(得分:2)
尝试belongs_to
,而不是has_one
。
命名可能很奇怪,但两者之间的区别实际上只是哪个表包含外键列。