私のコントローラーコード:
def description
product = @products.find(params(:id))
end
これはコントローラーにあり、製品変数をに渡す必要がありますdescription.html.erb
。これどうやってするの?
ArgumentError
それは私にインを与えていStoreController#description
ます。
私のコントローラーコード:
def description
product = @products.find(params(:id))
end
これはコントローラーにあり、製品変数をに渡す必要がありますdescription.html.erb
。これどうやってするの?
ArgumentError
それは私にインを与えていStoreController#description
ます。
を使用して、コントローラーからビューに変数を渡すことができます@
コントローラの例:
@my_var = 'toto'
ビューで
<%= @my_var %>
一般に、コントローラーからの変数がビューに渡される方法は、インスタンス変数としてそれらを割り当てることです。インスタンス変数は、その@
前に定義された変数@products
です。product
変数を渡す場合は、次のように設定する必要があります@product
。
@product = @products.find ...
この特定のケースでは、ビューが呼び出される前にエラーが発生します。コントローラアクションの唯一の行はこれをスローすることです。
@products
それが実際に設定されていることを確認してください。#description
メソッドに設定されていないので、before_filter
ここに設定されていますか?@products
電話できます#find
か?Railsでは、このメソッドを呼び出すモデルのみが表示されることがよくありますProduct.find(params[:id])
。
さらに、params
角かっこではなく通常のかっこを使用してハッシュにアクセスしているようです。Rubyでは、角かっこを使用します。これだけがエラーの原因である可能性があります。これを次のように変更してみてください。
@product = @products.find(params[:id])