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

Ruby on rails 通过多个部分传递变量(rails 4),ruby-on-rails,ruby-on-rails-4,partials,Ruby On Rails,Ruby On Rails 4,Partials,我试图通过多个部分传递实例变量,但遇到了问题未定义的局部变量或方法“产品” Application.html.erb“ @product%> _footer.html.erb <%= render 'shared/my_form', :product => product %> product%> _my_form.html.erb <%= form_for( product ) %> 更新: 我开始认为可能是因为没有为重定向设置/传递实例变量@prod

我试图通过多个部分传递实例变量,但遇到了问题<代码>未定义的局部变量或方法“产品”

Application.html.erb“

@product%>
_footer.html.erb

<%= render 'shared/my_form', :product => product %>
product%>
_my_form.html.erb

<%= form_for( product ) %>

更新:

我开始认为可能是因为没有为重定向设置/传递实例变量@product。可能是以下原因导致了问题吗?在这里打开了不同的问题:


如果要传递局部变量,应使用以下语法:

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


参考:(3.4.4)

您必须使用以下语法:

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

@product}%>
\u footer.html.erb

<%= render partial: 'shared/footer', locals: {:product => @product} %>
<%= render partial: 'shared/my_form', locals: {:product => product} %>
<%= form_for( product ) %>
product}%>
\u my\u form.html.erb

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


注意
partial:
locals:

我可能不理解这个问题,但在第二行和第三行中将
product
更改为
@product
是否有效?你发布的内容与我14分钟前发布的内容完全相同。@Peterdereder,我更新了我的帖子。但是,我认为实例变量现在设置不正确。另外,你的帖子和marwen的帖子略有不同,第二行是“@product”和my_form partial的product。啊,我的错,是一个打字错误。由于使用局部变量调用shared/footer,因此应该在footer中使用该局部变量。因此,您应该在那里使用product,而不是@product。我更新了我的答案。