渲染部分 - 没有这样的方法'键'

时间:2012-06-24 22:00:52

标签: ruby-on-rails

以下代码:

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

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

erb文件中的

引发了一个错误,即没有在User对象中找到方法'keys'。

发生了什么事?

1 个答案:

答案 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期望的变量。这解决了错误。