【发布时间】:2013-05-29 14:46:27
【问题描述】:
我正在努力解决对象中的错误,完全不确定问题出在哪里。
这就是模型的样子:
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 查询(在错误消息下方)似乎没问题,但是是什么导致了错误消息?
提前谢谢你。
【问题讨论】:
-
您确定您发布的查询中没有遗漏任何内容吗?对协会没有条件还是什么?某些东西正在应用日期条件,但查询中的任何内容都不应该这样做。
-
是的,我完全确定。这就是错误如此奇怪的原因。
-
类似的问题,看看吧。:stackoverflow.com/questions/15885335/…
标签: ruby-on-rails ruby postgresql activerecord join