gpt4 book ai didi

ruby-on-rails-3 - RoR - 通过关联和迁移或 "by hand"(或脚手架)创建的外键?

转载 作者:行者123 更新时间:2023-12-04 07:13:54 27 4
gpt4 key购买 nike

刚开始学习 Ruby on Rails。我正在使用 RoR 3。我读过这个:http://guides.rubyonrails.org/association_basics.html

但我想确保我完全理解。

当创建一个新模型时(我现在是通过脚手架做的),我应该在那个时候指定 foreign_key 字段,还是由关联完全处理?我相信关联仅在应用程序级别,而不是在数据库级别,对吗?

所以我认为我必须这样做:

rails generate scaffold post body:text title:string user_id:integer

所以总而言之,在创建博客应用程序时,我必须在帖子模型中指定 user_id 字段,还是用户模型的 has_many :posts 负责实际将其添加到数据库(我的是mysql)当我迁移?

如果答案是我应该在一开始(通过脚手架或手动)创建模型时执行它们,那么当我稍后决定要添加外键时会发生什么,我必须添加吗作为新迁移中的 execute 语句?

最佳答案

你是对的。您需要在创建脚手架/模型/迁移时指定外键,正如您所说的那样使数据库正确,并且 has_many 会为您处理模型。

因此对于脚手架(或模型)的初始生成,只需执行以下操作:

rails generate scaffold post body:text title:string user_id:integer

如您所述,并为模型本身添加 has_many

对于稍后的添加,您将创建一个新的迁移,例如(假设您想要使用生成,但您可以编写自己的迁移):

rails generate migration add_user_id_to_posts user_id:integer

有了它,您可以运行 rake db:migrate,然后使用 has_many 或您需要的任何关联更新您的模型。

关于ruby-on-rails-3 - RoR - 通过关联和迁移或 "by hand"(或脚手架)创建的外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5650195/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com