0

私のコントローラーコード:

def description  
   product = @products.find(params(:id))  
end

これはコントローラーにあり、製品変数をに渡す必要がありますdescription.html.erb。これどうやってするの?

ArgumentErrorそれは私にインを与えていStoreController#descriptionます。

4

2 に答える 2

0

を使用して、コントローラーからビューに変数を渡すことができます@

コントローラの例:

@my_var = 'toto'

ビューで

<%= @my_var %>
于 2013-03-22T16:23:13.713 に答える
0

一般に、コントローラーからの変数がビューに渡される方法は、インスタンス変数としてそれらを割り当てることです。インスタンス変数は、その@前に定義された変数@productsです。product変数を渡す場合は、次のように設定する必要があります@product

@product = @products.find ...

この特定のケースでは、ビューが呼び出される前にエラーが発生します。コントローラアクションの唯一の行はこれをスローすることです。

@productsそれが実際に設定されていることを確認してください。#descriptionメソッドに設定されていないので、before_filterここに設定されていますか?@products電話できます#findか?Railsでは、このメソッドを呼び出すモデルのみが表示されることがよくありますProduct.find(params[:id])

さらに、params角かっこではなく通常のかっこを使用してハッシュにアクセスしているようです。Rubyでは、角かっこを使用します。これだけがエラーの原因である可能性があります。これを次のように変更してみてください。

@product = @products.find(params[:id])
于 2013-03-22T16:29:07.430 に答える