多态协会会值得吗?

时间:2013-10-26 06:28:38

标签: ruby-on-rails

我正在制作的应用需要“拍照前”和“拍照后”。现在它在数据库中有2个单独的表。我正在考虑合并这两个,所以它看起来像这样:

create_table :photos do |t|
    t.string  :image
    t.string  :photographable_type
end

也许在我的模型中有这样的东西

has_many :before_photos, class_name: 'Photo', as: :photographable
has_many :after_photos, class_name: 'Photo', as: :photographable

我以前从未使用过多态协会而且有点困惑。有人可以告诉我这样做的正确方法是什么,并解释一下?

提前致谢

1 个答案:

答案 0 :(得分:0)

我认为您可以使用条件has_many而不是像这样的多态关联:

class PhotoOwner < ActiveRecord::Base
  has_many :before_photos, -> { where some_field: true }, class_name: 'Photo'
  has_many :after_photos, -> { where some_field: false }, class_name: 'Photo'
end

从此处获取:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html,“自定义查询”部分