1

以下代码:

<%= render 'shared/error_messages', f.object %>

其中 f.object 是名为“User”的类的实例。

在 erb 文件中引发关于在用户对象中找不到方法“键”的错误。

这是怎么回事?

4

1 回答 1

1

要渲染的第二个参数 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 部分期望的变量。这解决了错误。

于 2012-06-24T22:00:53.233 回答