从命令行添加has_many和belongs_to迁移

时间:2013-11-18 06:30:14

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord rails-migrations

我生成了两个模型,现在想要实现活动记录关联。

我有设计师和物品。 Item属于Designer,Designer有许多Items。

我的模特看起来像这样:

应用程序/模型/ item.rb的:

class Item < ActiveRecord::Base
    belongs_to :designer
    validates :designer_id, presence: true

end

应用程序/模型/ designer.rb:

class Designer < ActiveRecord::Base
    has_many :items, dependent: :destroy 

end

即使在我运行rake db:migrate后,我的迁移也没有反映出新的关系。他们展示了原始一代:

class CreateDesigners < ActiveRecord::Migration
  def change
    create_table :designers do |t|
      t.string :name
      t.string :country
      t.string :about

      t.timestamps
    end
  end
end

class CreateItems < ActiveRecord::Migration
  def change
    create_table :items do |t|
      t.string :title
      t.string :price
      t.string :description

      t.timestamps
    end
  end
end

如何进行迁移,以便数据库反映我在模型中编写的has_many和belongs_to关系?

1 个答案:

答案 0 :(得分:1)

您需要创建新的迁移以添加外键

rails g migration add_designer_id_to_item designer_id:integer

并运行

rake db:migrate