Rails 数据库关联/迁移

发布于 2024-12-21 23:44:39 字数 173 浏览 3 评论 0原文

我正在学习 Rails,并试图找出数据库关联。如果我有一个数据库表,其中包含具有 ID、姓名、电子邮件等的用户,以及包含消息、发件人(用户)和收件人(也是用户)的消息表,我如何设置迁移和模型。在这里,我使用的是 Rails 3.1。我很确定我可以只使用消息表中的一个用户和引用:迁移中的用户来完成此操作,但我不确定如何设置其中两个。

I'm learning rails and I'm trying to figure out database associations. If I have a database table with say Users that has an id, name, email, etc. and a Message table with the message, a sender (User) and recipient (also a User), how do I set up the migration and the models. Here, I'm using Rails 3.1. I'm pretty sure I can do it with just one User in the Message table with the references:User in the migration, but I'm not sure how to set up two of them.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风为裳 2024-12-28 23:44:39

一些帮助您入门的资源:Rails 教程:用户模型< /a> 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

显然,这是需要发生的事情的粗略草图,但这应该可以帮助您开始!

Some resources to get you started: Rails Tutorial: User Model RoR Guides: Migrations

First make your user migration

$ rails generate model User name:string email:string

Then your messages migration

$ rails generate model Message message:string user_id:integer

Then in your Messages model (/app/models/messages.rb)

belongs_to :user

And in your User model (/app/models/users.rb)

has_many :microposts

Obviously this is a rough sketch of what needs to happen, but that should get you started!

一抹苦笑 2024-12-28 23:44:39

好的,这就是我的最终结果。

首先是迁移...

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"

OK, here's what I ended up with.

First the migration ...

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

Next in the Message model ...

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

and in the User model ...

# Message model
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
belongs_to :recipient, :class_name => "User", :foreign_key => "recipient_id"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文