小编Qua*_*tum的帖子

Mysql2 ::错误:order子句中的'created_at'列不明确

我有以下查询正常工作

ObjectItem.find(:all, :include => :object_groups, :conditions =>  "object_items.description LIKE '%#{search}%' OR object_groups.description LIKE '%#{search}%'", :order => 'object_items.created_at DESC')
Run Code Online (Sandbox Code Playgroud)

但是以这种方式进行查询现在已被弃用,因此我正在尝试更改为此表单

ObjectItem.order('object_items.created_at DESC').includes(:object_groups).where("object_items.description LIKE '%#{search}%' OR object_groups.description LIKE '%#{search}%'")
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Mysql2::Error: Column created_at in order clause is ambiguous: SELECT  DISTINCT `object_items`.id FROM `object_items` LEFT OUTER JOIN `object_groups_object_items` ON `object_groups_object_items`.`object_item_id` = `object_items`.`id` LEFT OUTER JOIN `object_groups` ON `object_groups`.`id` = `object_groups_object_items`.`object_group_id` WHERE (object_items.description LIKE '%%' OR object_groups.description LIKE '%%') ORDER BY object_items.created_at DESC, created_at DESC  LIMIT 20 OFFSET 0
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails-3

3
推荐指数
2
解决办法
7540
查看次数

标签 统计

activerecord ×1

ruby-on-rails-3 ×1