0

在尝试处理我的搜索表单时,我反复遇到同样的错误。看一下互联网似乎很清楚,我的查询需要更具体,以便 Rails 随时知道要查看哪一列。从错误中我了解到问题来自属于 Headers 的“title_es”列。但是,我尝试了许多不同的方法,但我无法获得正确的语法来使其工作。任何帮助都感激不尽!谢谢

事件模型

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
4

1 回答 1

0

您应该指定表名,类似于"CAST(events.title_es as varchar(255))""CAST(headers.title_es as varchar(255))"取决于您的需要。

我想你也必须指定表名title_eu

于 2013-04-16T07:21:46.207 回答