Ruby on rails Rails 3.2-模棱两可的列名:title_es:-正确的语法是什么?
在处理我的搜索表单时,我反复出现同样的错误。看看互联网似乎很清楚,我的查询需要更加具体,以便Rails随时知道要查看哪一列。 从错误中我了解到问题来自属于标题的“title_es”列。然而,我尝试了许多不同的方法,但我无法获得正确的语法使其工作。任何帮助都将不胜感激!谢谢 事件模型Ruby on rails Rails 3.2-模棱两可的列名:title_es:-正确的语法是什么?,ruby-on-rails,database,ruby-on-rails-3,sqlite,Ruby On Rails,Database,Ruby On Rails 3,Sqlite,在处理我的搜索表单时,我反复出现同样的错误。看看互联网似乎很清楚,我的查询需要更加具体,以便Rails随时知道要查看哪一列。 从错误中我了解到问题来自属于标题的“title_es”列。然而,我尝试了许多不同的方法,但我无法获得正确的语法使其工作。任何帮助都将不胜感激!谢谢 事件模型 scope :with_timetable, joins(:header).where(headers: {weekly: true}) 事件控制器 def search @events_weekly =
scope :with_timetable, joins(:header).where(headers: {weekly: true})
事件控制器
def search
@events_weekly = Event.with_timetable.where((["CAST(title_es as varchar(255)) LIKE ?", "%#{params[:query]}%"] || ["CAST(title_en as varchar(255)) LIKE ?", "%#{params[:query]}%"] || ["CAST(title_eu as varchar(255)) LIKE ?", "%#{params[:query]}%"] || ["CAST(title_fr as varchar(255)) LIKE ?", "%#{params[:query]}%"])).includes(:header)
if @time.wday == 1
@events = @events_weekly.joins(:timetable).where(timetables: {mon: true})
elsif @time.wday == 2
.........
end
您应该指定表名,类似于
“CAST(events.title_作为varchar(255))”
或“CAST(headers.title_作为varchar(255))”
,具体取决于您的需要
我想您也必须指定表名
title\u eu
。您完全正确。我试着用单数(事件、标题)。这就是它不起作用的原因。谢谢你发现了!