Rendering partials from a helper method

落花浮王杯 提交于 2019-12-12 09:35:34

问题


Is it possible to render a partial using a helper method where you can also pass local variables from the view in which the helper method is called? For example, when I include this code directly in the view, it renders the partial properly:

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

Then I moved it to a helper method:

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

Then I called it from the view again with:

 <%= addRound %>

This did not work with the :locals => { :f => f } included in the code. It returned this error: undefined local variable or method `f'. However, the addRound method did render something with the following:

def addRound
  render :partial => "add_round"
end

Writing it this way allowed me to render partials that didn't require the local variables to be passed through (such as plain text strings). But how can I get it to work with the :locals => { :f => f } included? Is there another way to write that?

Thanks so much.


回答1:


You need to pass f to addRound

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

and in the view

<%= addRound(f) %>


来源:https://stackoverflow.com/questions/12361631/rendering-partials-from-a-helper-method

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!