Rails数据库关联/迁移

时间:2011-12-18 01:14:04

标签: model ruby-on-rails-3.1 database-migration

我正在学习rails,我正试图弄清楚数据库关联。如果我有一个数据库表,其中包含具有id,姓名,电子邮件等的用户以及带有消息的Message表,发件人(User)和收件人(也是User),如何设置迁移和楷模。在这里,我使用的是Rails 3.1。我很确定我可以在Message表中只使用一个User,并在迁移中使用引用:User,但我不确定如何设置其中两个。

2 个答案:

答案 0 :(得分:7)

一些可以帮助您入门的资源:Rails Tutorial: User Model RoR Guides: Migrations

首先进行用户迁移

$ 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

显然,这是需要发生什么的粗略草图,但这应该让你开始!

答案 1 :(得分:0)

好的,这就是我最终的目标。

首先是迁移......

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"

并在用户模型中......

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