以下代码:
<%= render 'shared/error_messages', f.object %>
其中 f.object 是名为“User”的类的实例。
在 erb 文件中引发关于在用户对象中找不到方法“键”的错误。
这是怎么回事?
以下代码:
<%= render 'shared/error_messages', f.object %>
其中 f.object 是名为“User”的类的实例。
在 erb 文件中引发关于在用户对象中找不到方法“键”的错误。
这是怎么回事?
要渲染的第二个参数 locals 是一个映射,它指定将在要渲染的部分中可用的变量。Api Doc: http ://apidock.com/rails/ActionView/Template/render 在这里,我们传递了一个用户实例,而不是 Rails 所期望的地图。在执行代码以呈现部分时,Rails 试图将 User 对象用作映射,因此出现关于找不到方法“键”的错误。
我真正需要的是这个——
<%= render 'shared/error_messages', object: f.object %>
其中 object 是 _error_messages.html.erb 部分期望的变量。这解决了错误。