通过多个部分传递变量 (rails 4)

Passing variables through multiple partials (rails 4)

我试图通过多个部分传递实例变量但遇到了问题。 undefined local variable or method "product"

Application.html.erb

    <%= render 'shared/footer', :product => @product %>

_footer.html.erb

<%= render 'shared/my_form', :product => product %>

_my_form.html.erb

<%= form_for( product ) %>

更新:

我开始认为可能是实例变量@product 没有被 set/passed 用于重定向。以下原因可能导致问题吗?在这里打开不同的问题:

如果你想传递局部变量,你应该使用这个语法:

 <%= render partial: 'shared/footer', locals: { product: @product } %>
 <%= render partial: 'shared/my_form', locals: { product: product } %>
 <%= form_for( product ) %>

供参考:http://guides.rubyonrails.org/layouts_and_rendering.html (3.4.4)

您必须使用以下语法:

Application.html.erb"

<%= render partial: 'shared/footer', locals: {:product => @product} %>

_footer.html.erb

<%= render partial: 'shared/my_form', locals: {:product => product} %>

_my_form.html.erb

<%= form_for( product ) %>

注意 partial:locals:

的使用