помощь с рельсовыми ассоциациями - PullRequest
2 голосов
/ 01 декабря 2009

Я хочу внедрить систему обмена сообщениями для моего приложения.

У меня есть пользователи.

Что именно я должен делать? создать модель сообщений с внешними двумя пользовательскими внешними ключами ?? .. что было бы наиболее подходящим способом сделать это?

Меня беспокоит то, что если я отправлю запрос «message.user», я не буду знать, получу ли я отправителя получателя сообщения

1 Ответ

3 голосов
/ 01 декабря 2009

Используйте два отдельных внешних ключа с соотнесенными именами belongs_to, чтобы различать отправителей и получателей.

Учитывая модель сообщения с внешними ключами sender_id и receiver_id, вы можете сделать:

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

Теперь вы сможете ссылаться на отправителя сообщения, используя message.sender, а получателя - message.receiver.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...