标题说明了一切。在我看来,rails生成模型mystuff 将生成一个除
之外的空模型class mystuff < ActiveRecord::Base
end
它还会生成一个迁移文件,我可以使用
将其发送到数据库rake db:migrate
这很棒,直到我想要抛出has_many关系。在这种情况下,我回到模型,看起来像例如:
class mystuff < ActiveRecord::Base
has_many :posts
end
然后我再次运行rake db:migrate
,但因为迁移文件尚未更新,所以没有任何有趣的事情发生。
然后我跑
rails generate migration mystuff and the migration file appears.
大。现在我想更新数据库本身,以便再次运行rake db:migrate
并更新架构。所有这些都有点罗嗦,所以有一种方法可以在生成模型时生成所有关联。那会更容易
答案 0 :(得分:0)
has_many
不会为您创建数据库迁移。它允许您设置类之间的关联。您必须自己创建一个新的迁移才能添加列。如果您熟悉外键,belongs_to
通常会出现在包含FK的类(模型)中。
例如,如果状态与任务相关联(即您想要“任务”的status_id,则可以在任务上添加belongs_to
并has_one
或{{1}然后生成一个迁移,将status_id添加到tasks表中,例如:has_many
。