Rails:初始迁移后改变关系

时间:2011-09-25 14:15:21

标签: ruby-on-rails migration relationship

我在找到关于rails关系创建的问题的答案时遇到了一些麻烦。

如果我已经为我的用户模型和我的评论模型运行了初始迁移而没有声明关系(即:用户has_many评论,评论属于用户),我如何在以后定义该关系?

我可以简单地说: 1 - 将user_id列添加到Comments, 2 - 宣布关系和 3运行新的add_user_id_to_comment迁移文件?

这会有用吗?如果没有,在运行模型的初始迁移后,我将如何改变关系?非常感谢你的帮助。\

Rails 3.1,Ruby 1.8.7

1 个答案:

答案 0 :(得分:3)

您可以使用change_table迁移(documentation)在其他迁移中添加引用:

change_table :comments do |t|
  t.references :user
end

然后只需将关联添加到模型中。

class User < ActiveRecord::Base
  has_many :comments
end

class Comment < ActiveRecord::Base
  belongs_to :user
end