Rails Database Association / Миграция - PullRequest
1 голос
/ 18 декабря 2011

Я изучаю рельсы и пытаюсь выяснить связи с базами данных. Если у меня есть таблица базы данных с, скажем, Users, у которой есть идентификатор, имя, адрес электронной почты и т. Д., И таблица Message с сообщением, отправителем (Пользователь) и получателем (также Пользователь), как мне настроить миграцию и моделей. Здесь я использую Rails 3.1. Я почти уверен, что могу сделать это только с одним пользователем в таблице сообщений со ссылками: пользователь в процессе миграции, но я не уверен, как настроить два из них.

Ответы [ 2 ]

7 голосов
/ 18 декабря 2011

Некоторые ресурсы для начала работы: Руководство по Rails: модель пользователя Руководства по RoR: Миграции

Сначала сделайте миграцию пользователя

$ rails generate model User name:string email:string

Тогда ваши сообщения переносятся

$ rails generate model Message message:string user_id:integer

Тогда в вашей модели сообщений (/app/models/messages.rb)

belongs_to :user

И в вашей пользовательской модели (/app/models/users.rb)

has_many :microposts

Очевидно, это грубый набросок того, что должно произойти, но это должно помочь вам начать!

0 голосов
/ 20 декабря 2011

Хорошо, вот что я закончил.

Первая миграция ...

class CreateMessage < ActiveRecord::Migration
  def change
    create_table :messages do |t|
      t.string :greeting
      t.integer :sender_id
      t.integer :recipient_id

      t.timestamps
    end
  end
end

Следующая в сообщении модель ...

# Message model
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
belongs_to :recipient, :class_name => "User", :foreign_key => "recipient_id"

и в модели User ...

# Message model
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
belongs_to :recipient, :class_name => "User", :foreign_key => "recipient_id"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...