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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top