16

ヘルパー メソッドが呼び出されたビューからローカル変数を渡すこともできるヘルパー メソッドを使用してパーシャルをレンダリングすることは可能ですか? たとえば、このコードをビューに直接含めると、パーシャルが適切にレンダリングされます。

 <%= render :partial => "add_round", :locals => { :f => f } %>

次に、それをヘルパー メソッドに移動しました。

def addRound
  render :partial => "add_round", :locals => { :f => f }
end

次に、次のようにビューから再度呼び出しました。

 <%= addRound %>

これは、コードに含まれる :locals => { :f => f } では機能しませんでした。次のエラーが返されました: 未定義のローカル変数またはメソッド `f'。ただし、addRound メソッドは、次のようなものをレンダリングしました。

def addRound
  render :partial => "add_round"
end

このように記述することで、ローカル変数を渡す必要のないパーシャル (プレーン テキスト文字列など) をレンダリングできました。しかし、どうすれば :locals => { :f => f } を含めて動作させることができますか? それ以外の書き方はありますか?

本当にありがとう。

4

1 に答える 1

30

に渡す必要がありfますaddRound

def addRound(f)
  render partial: "add_round", locals: { f: f }
end

そしてビューで

<%= addRound(f) %>
于 2012-09-11T01:43:45.237 に答える