试图避免rails中的多态关联

时间:2013-10-21 12:32:52

标签: ruby-on-rails ruby ruby-on-rails-3

我目前不确定是否应该使用此rails功能,或者我应该在我的Photo模型中添加两​​列employee_idproduct_id

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

1 个答案:

答案 0 :(得分: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