Модель данных для частной системы обмена сообщениями - PullRequest
0 голосов
/ 18 апреля 2009

Я пишу систему личных сообщений для моего веб-приложения. Просто подумайте, что вы делаете то же самое, что отправляете личным сообщениям на ваш типичный сайт в социальных сетях, таких как Facebook или Twitter, или даже отправляете электронные письма через Hotmail.

I have come up with the following migration so far:
class CreateMessages < ActiveRecord::Migration
  def self.up
    create_table :messages do |t|
      t.integer :sender_id, :recipient_id
      t.string :title
      t.text :body
      t.boolean :read
      t.timestamps
    end
  end

  def self.down
    drop_table :messages
  end
end

Однако, sender_id и receient_id оба ссылаются на одно и то же поле, которое является полем id в модели Role. Какие изменения я должен сделать, чтобы переводчик знал, что это относится к этому полю. Есть ли другие изменения, которые я должен сделать, такие как таблицы соединений?

1 Ответ

1 голос
/ 19 апреля 2009

Если я правильно читаю ваш вопрос, вы должны внести изменения в модель, используя опцию class_name для assign_to:

belongs_to :sender, :class_name => 'Role', :foreign_key => 'sender_id'
belongs_to :recipient, :class_name => 'Role', :foreign_key => 'recipient_id'

Я думаю, что внешние ключи выведены, поэтому вы должны их отключить.

...