1

次のコード:

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

ここで、f.object は「User」というクラスのインスタンスです。

erb ファイルで、User オブジェクトにメソッド「キー」が見つからないというエラーが発生しています。

どうしたの?

4

1 に答える 1

1

render の 2 番目のパラメーターである locals は、レンダリングされるパーシャルで使用できる変数を指定するマップです。Api Doc: http://apidock.com/rails/ActionView/Template/render ここでは、Rails が想定しているマップの代わりに User インスタンスを渡しています。コードを実行してパーシャルをレンダリングすると、Rails は User オブジェクトをマップとして使用しようとするため、メソッド「キー」が見つからないというエラーが発生します。

私が本当に必要としていたのはこれでした -

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

object は、_error_messages.html.erb パーシャルが期待する変数です。これでエラーが解決しました。

于 2012-06-24T22:00:53.233 に答える