Pregunta

Quiero implementar un sistema de mensajería para mi aplicación.

Tengo usuarios.

¿Qué debo hacer exactamente? ¿Crear un modelo de mensajes con claves externas de dos usuarios extranjeros? ¿Cuál sería la forma más adecuada de hacer esto?

Mi preocupación es que si consulto "mensaje.usuario" No sé si estaría recibiendo el remitente del destinatario del mensaje

¿Fue útil?

Solución

Utilice dos claves foráneas separadas con relaciones apropiadamente llamadas belong_to para distinguir entre remitentes y receptores.

Dado un modelo de mensaje con las claves foráneas sender_id y receptor_id puede hacer:

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

Ahora podrá hacer referencia al remitente de un mensaje con message.sender y al receptor con message.receiver .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top