通过多个部分传递变量 (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:
的使用
我试图通过多个部分传递实例变量但遇到了问题。 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: