0

我正在开发的应用程序需要具有“照片前”和“照片后”。现在它在数据库中有 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

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

提前致谢

4

1 回答 1

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,“自定义查询”部分

于 2013-10-26T08:14:51.560 回答