我的控制器代碼:需要從控制器傳遞參數.html.erb文件
def description
product = @products.find(params(:id))
end
這是在控制器中,我要的產品變量傳遞給description.html.erb
。我怎樣才能做到這一點?
它給了我一個ArgumentError
在StoreController#description
。
我的控制器代碼:需要從控制器傳遞參數.html.erb文件
def description
product = @products.find(params(:id))
end
這是在控制器中,我要的產品變量傳遞給description.html.erb
。我怎樣才能做到這一點?
它給了我一個ArgumentError
在StoreController#description
。
一般從控制器的方式變量會馬上傳遞到視圖是將它們分配爲一個實例變量,它們是在其之前用@
定義的變量,例如@products
。如果要傳承下去的product
變量,它被設置爲@product
,就像這樣:
@product = @products.find ...
在這種特殊情況下,你得到你的觀點,甚至被稱爲前引發錯誤。控制器操作中唯一的行是拋出這個。
確保@products
實際上正在設置。它沒有在#description
方法中設置,所以在這裏設置爲before_filter
? @products
能撥打#find
嗎?在Rails中,我們經常只會看到一個調用此方法的模型,例如Product.find(params[:id])
。
此外,我看到你正在訪問你的params
哈希與正則括號而不是方括號。在Ruby中你使用方括號。這可能是導致錯誤的原因。嘗試改變:
@product = @products.find(params[:id])
您可以通過從控制變量,使用控制器@
例如觀點:
@my_var = 'toto'
鑑於
<%= @my_var %>
我做了同樣的事情 – user2150960 2013-03-22 16:28:51
謝謝你的工作。 – user2150960 2013-03-22 16:37:18
不客氣! – MrDanA 2013-03-22 17:12:14