2014-01-05 65 views
0

我试图实现一个过滤器。在我的搜索领域,我有一个名为“所有城市”的选项,与值0RecordNotFound:无法找到ID = 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

回答

1

参数将是params散列中的字符串,您需要更改条件为:

params[:city_id] != "0" 
+0

你。是。真棒机械鱼! :)。谢谢。将在11分钟内接受答案 –

相关问题