k00*_*00k 3 migration foreign-keys scaffolding associations ruby-on-rails-3
刚开始学习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
总而言之,在创建博客应用程序时,我必须在post模型中指定user_id字段,还是has_many  :posts在迁移时用户模型是否真的将其添加到db(我的是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您需要的任何关联更新您的模型.
| 归档时间: | 
 | 
| 查看次数: | 1715 次 | 
| 最近记录: |