所以我试图在rails 4.2应用程序中覆盖关系has_many
。
我是Event
的{{1}}模特。
has_many :picturables
也可Event
,此has_one :contact
也Contact
。
我尝试实现的是,当我们致电has_many :picturables
时,会返回event.picturables
的{{1}}以及picturables
的{{1}}。
我已尝试使用'扩展关联' :
Event
所以,当我Contact
时,它会按我的意愿行事。但是,我想直接覆盖has_many :picturables, ->{ order(:position) }, as: :picturable, class_name: "Picturable", dependent: :delete_all do
def <missing_name>
event = proxy_association.owner
event.contact.present? ? event.picturables + event.contact.picturables : event.picturables
end
def poney
event = proxy_association.owner
event.contact.present? ? event.picturables + event.contact.picturables : event.picturables
end
end
。
我尝试将方法命名为event.picturables.poney
或event.picturables
,但它不起作用。
我希望以我尝试的方式实现,或者我需要声明一个正常的&#39;方法
你们能帮助我吗?
提前致谢
编辑:
我选择的解决方案:
我无法按照搜索的方式找到解决方案,所以我实现了另一个想法:
self
制作&#39;在哪里&#39;手工就是我们仍然有一个ActiveRecord:RelationProxy作为返回,因为当我创建event.picturables + event.contact.picturables它返回一个数组