У меня есть модель Member
, которая содержит всю информацию о зарегистрированном участнике на моем сайте.Тогда у меня есть модель Message
, которая содержит 2 столбца (на самом деле 3 с id
):
- member_id
- message_from
В таблице Messages
хранятся идентификаторы пользователя, как общаются вместе - когда участник A отправить сообщение участнику B , поэтому в столбце member_id
сохраняется идентификатор человека A и в столбце message_from
идентификатор лица B .
Мои текущие ассоциации выглядят так:
class Member < ActiveRecord::Base
has_many :messages_from
end
class Message < ActiveRecord::Base
belongs_to :member
end
Не знаю, как я могу получить имя человека, хранящегося в столбце message_from - когда я пытаюсь
- @member.messages_from.each do |mess_from|
={mess_from.name}
, поэтому я получаю ошибку undefined method "name" for
... Как я могу получить имя пользователя через идентификатор, который хранится в столбце message_from
?
РЕДАКТИРОВАТЬ - обновить отношения:
class Member < ActiveRecord::Base
has_many :messages
end
class Message < ActiveRecord::Base
belongs_to :member, :foreign_key => 'user_id', :class_name => 'Member'
has_one :member, :foreign_key => 'message_from', :class_name => 'Member'
end
дает мне:
- @member.messages.each do |message|
= message.message_from.inspect # => "110"
= message.message_from.inspect # => undefined method `name' for "110":String (I wanna get the name of person with ID 110)