我很高兴将此查询用于搜索表单。但是,刚刚发现无法正常工作。失败的位.where
是like
反对params[:query]
。这like
在 4 个不同的字段中发生了 4 次。然而,结果表明这并没有发生。
@events_casual = Event.non_timetable.where("events.finish_date >= ?", @time).where((["CAST(headers.title_es as varchar(255)) LIKE ?", "%#{params[:query]}%"] || ["CAST(headers.title_en as varchar(255)) LIKE ?", "%#{params[:query]}%"] || ["CAST(headers.title_eu as varchar(255)) LIKE ?", "%#{params[:query]}%"] || ["CAST(headers.title_fr as varchar(255)) LIKE ?", "%#{params[:query]}%"])).includes(:header).order("events.start_date ASC")
我一直在尝试将此查询转换为:
@events_casual = Event.non_timetable.joins(:header).where(" params[:query] in (?)", [headers.title_es, headers.title_en, headers.title_eu]).order("events.start_date ASC")
但是,这不起作用。Error: undefined method
{}:Hash` 的 title_es'
我尝试过类似的语法。但无济于事。
非常感谢重写该查询的任何帮助。谢谢