记录未找到:找不到 id=0 的城市



我正在尝试实现一个过滤器。在我的搜索字段中,我有一个名为"所有城市"的选项,值为 0。

在控制器中,如果参数 [: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

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

params[:city_id] != "0"

最新更新