2016-01-30 62 views
0

我想通過多個部分傳遞實例變量並遇到問題。 undefined local variable or method "product"通過多個部分傳遞變量(導軌4)

Application.html.erb」

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

_footer.html.erb

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

_my_form.html.erb

<%= form_for(product) %> 

UPDATE:

我開始思考可能是實例變量@product沒有被重定向設置/傳遞。下列情況可能導致此問題嗎?打開不同的問題在這裏:

Instance variable not set with redirect

+0

我可能不理解問題,埠t是否在第二和第三行中將'product'更改爲'@ product'? – Undo

回答

1

你有使用此語法:

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:

+0

您發佈的內容與我在14分鐘前發佈的完全相同。 –

+0

@PeterdeRidder,我更新了我的帖子。但是,我想現在沒有正確設置實例變量。另外,你的帖子和marwen的帖子略有不同,第二行是'@product'與my_form部分的產品。 – user2012677

+0

啊,我的壞,是一個錯字。由於您使用局部變量調用共享/頁腳,因此應在頁腳中使用該局部變量。因此,您應該使用產品而不是@product。我更新了我的答案。 –

1

如果你想通過局部變量,你應該使用這樣的語法:

<%= 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)