0

我有一个模型,它依赖于其他两个模型的关联,如下所示:

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 db 让我相信我确实需要以某种方式这样做。最好的方法是什么?我对 RoR 很陌生,所以欢迎和感谢任何反馈。

4

1 回答 1

0

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

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

于 2013-07-21T18:18:30.060 回答