ajuda com associações trilhos
-
10-07-2019 - |
Pergunta
Eu quero implementar um sistema de mensagens para o meu aplicativo.
Eu tenho usuários.
O que exatamente devo fazer? criar um modelo de mensagens com duas chaves estrangeiras de usuários estrangeiros ?? .. qual seria a maneira mais approproate de conseguir este feito?
A minha preocupação é que se eu consulta "message.user" Eu não vou saber se Id estar recebendo o remetente do receptor da mensagem
Solução
Use duas chaves estrangeiras separados com relações belongs_to
approprately nomeados para distinguir entre emissores e receptores.
Dado um modelo de mensagem com as chaves estrangeiras sender_id
e receiver_id
você pode fazer:
class Message < ActiveRecord::Base
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
belongs_to :receiver, :class_name => "User", :foreign_key => "receiver_id"
end
Agora você vai ser capaz de referência remetente de uma mensagem usando message.sender
e receptor usando message.receiver
.