2017-04-18 81 views
0

我的源代碼是如何傳遞多個參數使行動Ruby on Rails的

.modal-body 
    =render 'folders/pieces/update', id: @piece , folder_id: @piece.folder_id 

它拋出一個錯誤:

undefined method 'folder_id' for nil:NilClass 

我想傳遞兩個參數在渲染頁面

+0

沒有試圖諷刺,你真的*讀*錯誤信息?它確切地說明了問題所在,並且完全不提示它與傳遞渲染參數有關...... – AnoE

回答

4

你的代碼是有效和正確的 - 這正是你如何傳遞多個參數來渲染。

錯誤來自事實,即@piecenil

-2

您的代碼對於多個參數絕對正確。錯誤是因爲您在@piece中獲得nil的值。 你可以簡單地處理nil值如下: @piece.try(:folder_id)

而且你的代碼看起來是這樣的:

.modal-body =render 'folders/pieces/update', id: @piece , folder_id: @piece.try(:folder_id) 

這不會引發任何錯誤nil值的情況。

+0

雖然這個答案在事實上是正確的,但我會建議不要這樣做。當'nil'是變量的預期值和公共值時,'#try'有它的位置,但對於這樣的動作(它看起來像一個表單被保存),我會假設'nil'會提示一個錯誤。所以'try'只會隱藏開發者/日誌文件中的錯誤 - 但用戶會注意到。 – AnoE

相關問題