试图避免rails中的多态关联

Gan*_*row 1 ruby ruby-on-rails ruby-on-rails-3

我目前在怀疑我是否应该使用这种导轨功能,或者我应该只是添加两列employee_id,并product_id在我的照片模式.

如果员工和产品最终都具有相同的ID,该怎么办?这会打破吗?

rom*_*man 6

我认为你绝对应该在这里使用多态.如果您将来再添加一个可以拥有照片的模型,该怎么办?您需要额外的迁移才能实现它!

它不会破坏类似的id,因为多态关联你将使用一个额外的字段..._type,如下所示:

class CreatePictures < ActiveRecord::Migration
  def change
    create_table :photos do |t|
      t.string  :name
      t.integer :imageable_id
      t.string  :imageable_type
      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)