Rails将表与模型Assoc关联起来

时间:2013-07-21 18:10:12

标签: ruby-on-rails ruby migration jointable

我有一个模型依赖于其他两个模型的关联:

class InventoryItem < ActiveRecord::Base
  attr_accessible :vendor_id, :price, :upc
  has_many :items
  belongs_to :vendor
end

我的问题是:如果我在连接模型中有这些关联,我是否需要在迁移中再次指定这些关联以创建inventory_items表,以便包含以下属性:items和:vendor?以下是创建该表的当前迁移(尚未运行):

class CreateInventoryItems < ActiveRecord::Migration
  def change
    create_table :inventory_items do |t|
      t.integer :upc
      t.decimal :price
      t.integer :vendor_id
    end
  end
end

浏览sqlit3数据库让我相信我确实需要以某种方式做到这一点。最好的方法吗?我对RoR很新,所以欢迎任何反馈意见。

1 个答案:

答案 0 :(得分:0)

您的模型需要了解所有关联,但您的迁移不关心关联。只要您的子模型中有外键,就可以在迁移中正确设置数据库级别的关联。

使用Rails,我们的想法是在数据库级别上尽可能少地做,并尽可能在应用程序(ORM)级别上执行。因此,您让模型了解关联,这将使他们能够使用相应的ORM方法来处理关联,但您的数据库不需要知道关联。