我正在制作的应用需要“拍照前”和“拍照后”。现在它在数据库中有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
我以前从未使用过多态协会而且有点困惑。有人可以告诉我这样做的正确方法是什么,并解释一下?
提前致谢
答案 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,“自定义查询”部分