Ruby On Rails ORM 模型关系

发布于 2024-08-20 11:42:20 字数 190 浏览 3 评论 0原文

我对 ROR/rake 中如何创建/处理“关系”有点困惑。

谁能确认以下内容是否正确?

  1. 在数据库迁移文件中编写“插入 xxx 关系”代码。完成后进行迁移。
  2. 模型文件中最终关系(has_xxx...)中的代码。

如果是这样,ROR 可以根据模型的更改自动生成数据库迁移文件吗?

I'm a bit confused as to how "relationships" are created/processed in ROR/rake.

Can anyone confirm if the following is correct?

  1. Code the "insert xxx relation" in the DB Migration file. Migrate this once done.
  2. Code in the final relationship (has_xxx...) in the model file.

If so, can ROR autogen the DB Migration file from changes in the model?

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

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

发布评论

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

评论(1

素衣风尘叹 2024-08-27 11:42:20

您走在正确的道路上。
在迁移中,使用“t.references”方法。例如:

t.references :user

这将在您的数据库中创建一个“user_id”列。
然后在您的模型中,您使用:

belongs_to :user

如果您想在模型中使用“has_xxx:widgets”,则小部件数据库表需要“whatever_id”列。
Rails 不会根据您的模型对迁移进行任何更改。 AFAIK,Rails 在创建迁移后永远不会更改它。您将必须手动编写这些关系的代码。

You are on the right path.
In your migration, use the 't.references' method. For example:

t.references :user

This will create a 'user_id' column in your database.
Then in your model, you use:

belongs_to :user

If you want to use 'has_xxx :widgets' in your model, the widgets database table needs the 'whatever_id' column.
Rails does not make any changes to your migration based on your model. AFAIK, Rails will never change your migration after you create it. You are going to have to code these relationships by hand.

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