在Rails中覆盖Active Query构造

时间:2014-02-01 19:26:23

标签: sql ruby-on-rails database controller

我有以下尝试从我的数据库中选择一些模型实例:

@coasters = Coaster.joins(:park).order('parks.name ASC').order('coasters.name ASC')

index操作即将结束时,我需要覆盖上述查询的订单部分,以便执行以下操作:

@coasters = @coasters.except(:joins).reorder('order ASC')

但是我收到了这个错误:

  

PG :: UndefinedTable:错误:缺少表的FROM子句条目   “公园”第1行:选择“杯垫”。*来自“杯垫”ORDER BY   parks.name AS ...                                                          ^:选择“杯垫”。* FROM“杯垫”ORDER BY parks.name ASC,coasters.name   ASC,“命令”ASC LIMIT 25 OFFSET 0

关于如何解决它的任何想法?

1 个答案:

答案 0 :(得分:2)

在确定所需的排序之前,您应该考虑使用延迟加载功能并且根本不执行任何订单。

@coasters = Coaster.where(...).joins(...)

然后

@coasters = @coasters.order(...)