Из комментариев, это звучит, как у вас есть эта Comment
модель:
class Comment < ActiveRecord::Base
belongs_to :user
end
Комментарий модель представляет комментарии на странице пользователя, где модель пользователя определяется как:
class User < ActiveRecord::Base
has_many :comments
end
Существует также commenter
столбец на comments
таблицы для хранения пользователя, разместившего комментарий (на дру er пользовательская страница).
Во-первых, я бы рекомендовал использовать commenter_id
для этого столбца, а не commenter
, так как это соглашение для хранения идентификаторов любого типа.
Предполагая, что у вас есть commenter_id
колонка на comments
таблиц, вы бы затем определить вторые отношения следующим образом:
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :commenter, class_name: "User", foreign_key: :commenter_id
end
commenter
отношение определяет пользователь, который написал комментарий, а не пользователь , чья страница размещена на.
Для другой стороны этого отношения, обновить User
модели:
class User < ActiveRecord::Base
has_many :comments
has_many :page_comments, class_name: "Comment", foreign_key: :commenter_id
end
Здесь page_comments
определяет комментарии этого пользователь разместил на страницах других пользователей.
Тогда, если у вас есть @comment
, вы можете получить имя комментатора с просто:
@comment.commenter.name
Пока вы настраиваете ваши имена столбцов и модели правильно, касающиеся получения информации, как это должно быть очень просто.
Можете ли вы предоставить некоторый фактический код (например, код модели)? Трудно понять, как выглядят ваши отношения с моделью. –
Также поможет ваша схема db. Я не понимаю, почему вы используете 'commenter' в качестве имени столбца, стандартный формат будет' user_id' для отношения 'own_to'. –
@ChrisSalzberg Извините за путаницу, я использую user_id, чтобы соответствовать комментарию на странице пользователя, комментатор предназначен исключительно для пользователя, разместившего комментарий. Кроме того, не существует кода модели для комментариев, кроме того, что принадлежит role_to/has_many – aidiah