내 사이트에 등록 된 회원에 관한 모든 정보가 들어있는 Member
모델이 있습니다. 그럼 난 2 열 (id
와 실제로 3)를 포함 Message
모델이 : 테이블 Messages
에서레일 - 두 개의 연관이있는 모델
- member_id
- message_from
사용자의 ID를 저장됩니다, 어떻게 함께 채팅 - 때 멤버 회원 B에 대한 메시지 보내기이므로 열은 저장된 사람 ID A 및 사람 의 message_from
ID에 저장됩니다. 같은
나의 현재 협회
보이는 : 몰라요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
열에 저장된 ID를 통해 사용자의 이름을 어떻게 얻을 수 있습니까?
편집 - 업데이트 관계 :
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)
I의 힘을 이해하여 ** -'대신'mess_from.name' 사촌의 member.name' 수 **와 ** = ** 표지판,하지만 야해 메시지에는 이름이있는 멤버 항목이 아니라 이름이 있습니다.) – uday
외부 키 지정과 함께 'has_many : messages'를 원합니다. –
@ MarkThomas 귀하의 충고에 따라 코드를 업데이트하고 원래 게시물을 업데이트하려고 시도했습니다. – user984621