У меня есть две модели / таблицы в моем приложении на 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
.
Использую ли я здесь неправильный тип ассоциации? Спасибо за вашу помощь!