我正在尝试将默认范围添加到我需要的模型中,首先按一个属性排序asc,然后按另一个模型上的委托属性进行升序排序。
到目前为止,我有这个:
delegate :name, :location_1, :location_2, :location_3, :location_4,
to: :park,
allow_nil: true,
prefix: true
default_scope order('coaster_sort ASC').order('park_name ASC')
我一直收到一条错误,指出park_name不存在(这是真的,因为它不在该模型上)但是它被委派了。
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
您需要在关联的表格上执行joins
才能按顺序排序。我没有测试过这个,但是有点像:
default_scope joins(:other_model).order('coaster_sort ASC').order('<other_model>.park_name ASC')
我没有测试过上面的代码,但我之前已经这样做了......可能需要针对您的代码调整order
符号。