我正在尝试实施过滤器。在我的搜索字段中,我有一个名为“所有城市”的选项,值为0.
在控制器中,如果params [:city_id] = 0
,我希望它忽略过滤器这就是我写的 - >
@city = City.find(params[:city_id]) if params[:city_id] && params[:city_id] != 0
@jobs = Job.all
@jobs = @jobs.includes(:cities).where(cities: { id: @city }) if @city
然而,我收到错误
ActiveRecord::RecordNotFound in JobsController#index
为什么会这样?不应该触发City.find(params [:city_id]),因为在if参数中我包含了params [:city_id!= 0
答案 0 :(得分:1)
该参数将是params
哈希中的字符串,您需要将条件更改为:
params[:city_id] != "0"