以下代码:
<%= render 'shared/error_messages', f.object %>
其中f.object是名为“User”的类的实例。
erb文件中的引发了一个错误,即没有在User对象中找到方法'keys'。
发生了什么事?
答案 0 :(得分:1)
要渲染的第二个参数,locals是一个映射,它指定将要渲染的partial中可用的变量。 Api Doc: http://apidock.com/rails/ActionView/Template/render 在这里,我们传递一个User实例而不是Rails期望的地图。当执行代码渲染部分时,Rails尝试将User对象用作映射,因此错误是找不到方法'keys'。
我真正需要的是这个 -
<%= render 'shared/error_messages', object: f.object %>
其中object是_error_messages.html.erb partial期望的变量。这解决了错误。