我正在努力解决对象中的错误,根本不确定问题出在哪里.

这就是模型的样子:

class Car < ActiveRecord::Base  
  has_many :car_colors
  has_many :colors, :through => :car_colors
end

class CarColor < ActiveRecord::Base
  belongs_to :color
  belongs_to :car
end

class Color < ActiveRecord::Base  
  has_many :car_colors
  has_many :cars, :through => :car_colors
end

以下是问题:

@cars = Car.all(:joins => :car_colors, :conditions => { :car_colors => {:color_id => params[:id_number]}}, :order => "cars.created_at DESC")

以及错误输出:

PG::Error: ERROR:  column reference "created_at" is ambiguous
LINE 1: ...d" WHERE "car_colors"."color_id" = 2 AND (created_at...
                                                             ^
: SELECT "cars".* FROM "cars" INNER JOIN "car_colors" ON "car_colors"."car_id" = "cars"."id" WHERE "car_colors"."color_id" = 2 AND (created_at > '2013-05-03 12:28:36.551058') ORDER BY cars.created_at DESC

生成的SQL查询(在错误消息下面)似乎没有问题,但是什么导致了错误消息?

提前谢谢你.

推荐答案

在您的car_colors表中可能有一个已创建的_at字段.created_at应该是cars.created_at以消除歧义.

Postgresql相关问答推荐

如何在Windows中安装sql for golang

Haskell仆人发布FormUrlEncode for(向量字符串)字段

如何使用docker/docker-compose转到本地主机?

为什么更新不设置较晚的结束时间?

PostgreSQL临时文件的误解

AGE Graph 实际上存储为 postgreSQL 表,对吧?如何检索该表(不是图表)?

是否可以短时间运行 VACUUM FULL 并获得一些好处?

如何将 NULL 值插入 UUID 而不是零

?(问号)运算符在 Rails 中查询 Postgresql JSONB 类型

查询仅属于特定部门的用户

datagrip 无法应用更改 此表是只读的

在 PL/pgSQL 中声明行类型变量

plpgsql:使用 2 个 OUT 参数调用函数

Django 1.9.2 AssertionError:database connection isn't set to UTC

PostgreSQL:将结果数据从 SQL 查询导出到 Excel/CSV

FOR EACH STATEMENT 触发器示例

使用 Postgresql 在过滤器中制作 Sqlalchemy 使用日期

如何在不丢失openproject数据的情况下将postgresql数据库从10升级到12

Rails ActiveRecord:PG::Error:错误:column reference "created_at" is ambiguous

Rails Migrations:试图将列的类型从字符串更改为整数