我的源代碼是如何傳遞多個參數使行動Ruby on Rails的
.modal-body
=render 'folders/pieces/update', id: @piece , folder_id: @piece.folder_id
它拋出一個錯誤:
undefined method 'folder_id' for nil:NilClass
我想傳遞兩個參數在渲染頁面
我的源代碼是如何傳遞多個參數使行動Ruby on Rails的
.modal-body
=render 'folders/pieces/update', id: @piece , folder_id: @piece.folder_id
它拋出一個錯誤:
undefined method 'folder_id' for nil:NilClass
我想傳遞兩個參數在渲染頁面
你的代碼是有效和正確的 - 這正是你如何傳遞多個參數來渲染。
錯誤來自事實,即@piece
是nil
。
您的代碼對於多個參數絕對正確。錯誤是因爲您在@piece
中獲得nil
的值。 你可以簡單地處理nil
值如下: @piece.try(:folder_id)
而且你的代碼看起來是這樣的:
.modal-body =render 'folders/pieces/update', id: @piece , folder_id: @piece.try(:folder_id)
這不會引發任何錯誤nil
值的情況。
雖然這個答案在事實上是正確的,但我會建議不要這樣做。當'nil'是變量的預期值和公共值時,'#try'有它的位置,但對於這樣的動作(它看起來像一個表單被保存),我會假設'nil'會提示一個錯誤。所以'try'只會隱藏開發者/日誌文件中的錯誤 - 但用戶會注意到。 – AnoE
沒有試圖諷刺,你真的*讀*錯誤信息?它確切地說明了問題所在,並且完全不提示它與傳遞渲染參數有關...... – AnoE