RecordNotFound:找不到id = 0的City

时间:2014-01-05 18:41:41

标签: ruby-on-rails

我正在尝试实施过滤器。在我的搜索字段中,我有一个名为“所有城市”的选项,值为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 个答案:

答案 0 :(得分:1)

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

params[:city_id] != "0"