1
以下代碼:渲染的諧音 - 沒有這樣的方法「鑰匙」
<%= render 'shared/error_messages', f.object %>
其中f.object是一個名爲「用戶」類的實例。
在一個erb文件中引發了一個有關在用戶對象中找不到方法'鍵'的錯誤。
發生了什麼事?
以下代碼:渲染的諧音 - 沒有這樣的方法「鑰匙」
<%= render 'shared/error_messages', f.object %>
其中f.object是一個名爲「用戶」類的實例。
在一個erb文件中引發了一個有關在用戶對象中找不到方法'鍵'的錯誤。
發生了什麼事?
渲染的第二個參數locals是一個映射,它指定將在部分渲染中可用的變量。 Api Doc: http://apidock.com/rails/ActionView/Template/render 在這裏,我們正在傳遞一個User實例,而不是Rails所期望的地圖。當執行代碼來渲染部分時,Rails試圖使用User對象作爲映射,因此出現了無法找到方法'鍵'的錯誤。
我真正需要的是這樣的 -
<%= render 'shared/error_messages', object: f.object %>
object是一個變量_error_messages.html.erb部分期待。這解決了錯誤。