2014-05-24 71 views
0

我有一個軌道4的應用程序,有一個像一些代碼:部分傳遞變量錯誤

<% @store.products.each_with_index do |p, i| %> 
    <%= render "product_fields", locals: {product:p, index: i} %> 
<% end %> 

和product_fields部分看起來像:

//LOTS OF HTML CODE HERE 
<% if params[:action] == "edit" %> 
    <%= render "edit_product_fields", locals: {p: product, i: index } %> 
<% end %> 

But'm收到錯誤(上_product_fields。 html.erb):

NameError in Products#edit 
undefined local variable or method `p' for #<#<Class:0x00000101e35da8>:0x00000101a86568> 

怎麼回事?另外,我想知道是否有更簡潔的方式將變量傳遞給partials中的partials?我試圖做類似locals: {w:w}(所以會是變量一致的命名,但它似乎沒有任何工作。

+0

您可以發佈完整的錯誤和完整'product_fields'部分? –

+0

@ JKen13579 ,當然只是發佈 –

回答

1

在3+你不需要提供一個當地人選擇的軌道,只要直接傳遞變量。

<%= render 'product_fields', product: p, index: i %> 
0

你應該在你的回報,否則,當地人不會工作增加partial關鍵字。

<%= render partial: "product_fields", locals: { product: p, index: i } %> 

<%= render partial: "edit_product_fields", locals: { p: product, i: index } %> 
+0

感謝您的迴應,但它不會改變錯誤? –