有没有办法定义从另一个poly assoc中提取的多态关联,但是如果第一个多关联是空的,那么它还会恢复为备份poly关联?也许是这样的?
class Reservation < ActiveRecord::Base
has_many :trip_itinerary_entries, :through => :trips, :source => :itinerary_entries
has_many :template_itinerary_entries, :through => :templates, :source => :itinerary_entries
has_many :entries, :from => :trip_itinerary_entries, :backup => :template_itinerary_entries
谢谢!
答案 0 :(得分:0)
我会设置两个多态关联(在我的模型中和我的数据库中的必需列),然后创建一个获取两个项的方法(你不想覆盖它们的方法,否则你不会能够写出新的关系。)
def get_entries
if entries.any?
entries
else
template_itinerary_entries
end
end
这样,您可以在需要添加项目时使用entries
。
reserve = Reservation.new
reserve.entries << Entry.create()
但您可以使用get_entries
方法获取其中任何一项。
reserve.get_entries
=> [template_itinerary_entries] # if there are no entries.