3

ビューからパーシャルに単一の引数を渡すことができますが、何らかの理由で 2 番目を追加すると未定義 (nil クラス) になります。

ビューでパーシャルを呼び出す方法は次のとおりです。

<%= render 'project_form', locals: {project: @project, form_method: 'patch'} %>

部分 (_project_form.html.erb) の先頭は次のとおりです。

<%= logger.debug( @form_method ) %>

これにより、ビューに「true」が出力され、ログには何も記録されません (空白行)。

2 番目の引数を受け取っていないのはなぜですか? 私は @project をデバッグすることができ、それは私が期待するクラスです。

更新:この質問に よると、複数の引数を渡すには、レンダリング構文を少し変更する必要があります。

そのため、2 つの問題がありました。1) 変数のスコープ、2)render :partial複数のローカル変数を渡すには、構文を明示的にする必要があります。

4

1 に答える 1

2

印刷しようとしているローカル変数です。の代わりにパーシャルでこれを試してください@form_method

<%= logger.debug( form_method ) %>

そして、以下は部分的に値を出力すると思います:

<%= form_method %>
于 2013-09-18T13:47:05.653 に答える