2015-07-20 48 views
1

我創建新功能正在工作,現在它不知何故被破壞。不知道爲什麼。動作控制器異常錯誤

我得到這個錯誤: enter image description here

而且我行控制器是該

private 
def set_space 
    @space = Space.find(params[:id]) 
    @property = Property.find(params[:id]) 
# @contract = Contract.find(params[:id]) 
end 
+0

在哪個控制器中你有那個代碼? – Pavan

+0

根據錯誤你的參數沒有身份證。嘗試看看這些參數。 – Athar

+0

@Athar有'params [:id]',但是在數據庫中沒有id等於'params [:id]' –

回答

0

我總是這個代碼塊添加到我的意見/佈局/ application.html的底部。 erb

<% if Rails.env.development? %> 
    <%= debug(params) %> 
<% end %> 

它應該告訴你什麼是你的params。

0

params [:id]是零。我會仔細檢查其在URL中傳遞:

/route/:id 

或者

/route?id=1 
1

您試圖通過在控制器的方法一個id獲得兩項紀錄:

@space = Space.find(params[:id]) 
@property = Property.find(params[:id]) 

你應該修改此代碼,除非您有意這樣做。

其次,在做.find(params[:id])之前,您應該始終檢查是否在params[:id]之前收到了有效的id。你可以做到這一點:

@space = Space.find(params[:id]) if params[:id] 

如果你使用,find_by_id,它給你nil如果記錄未找到,而不是你在你的情況下所得到的錯誤消息。

您得到的錯誤的原因很簡單,就是您試圖從db訪問記錄的id不存在。

0

我有我的set_property方法:新動作