次のコード:
<%= render 'shared/error_messages', f.object %>
ここで、f.object は「User」というクラスのインスタンスです。
erb ファイルで、User オブジェクトにメソッド「キー」が見つからないというエラーが発生しています。
どうしたの?
次のコード:
<%= render 'shared/error_messages', f.object %>
ここで、f.object は「User」というクラスのインスタンスです。
erb ファイルで、User オブジェクトにメソッド「キー」が見つからないというエラーが発生しています。
どうしたの?
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 パーシャルが期待する変数です。これでエラーが解決しました。