2014-01-05 105 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分鐘內接受答案 –

相關問題