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