2016-05-23 8 views
-1

私はレールを使い慣れているので、これで私と一緒にいらしてください。 "show"ページへのリンクを追加しました。このページには現在のページのidがあり、それを他のモデルのエントリに追加します。 コントローラのidにアクセスするにはどうすればよいですか?"show"中に現在のオブジェクトのIDにアクセスするにはどうすればよいですか?

私の意見は次のとおりです/products/1 "1"を入手するにはどうすればよいですか?現在のリンクを取得しようとすると、最後にパラメータを持たないリンクが生成されます。

お時間をいただきありがとうございます。

コード:私はshow.html.erb

<%= link_to "Add to cart", {:controller => "products", :action => "add_to_cart", :product => @product.id}%> 

と行動自体

に使用してい

get 'added' => 'products#add_to_cart' 

リンク: これはアクションに私のルートがあるものです

def add_to_cart 
    @cart = Cart.new 
    @cart.username = current_user.id 
    @cart.product_name = params[:id] 
    @cart.price = 100 
    @cart.amount = 1 
    @cart.save 
    @products = Product.all 
    render "index" 
    end 
+2

あなたは単に 'params [:id]'を使うだけです。 – HashRocket

+0

あなたは 'show'ではなく' add_to_cart'にいるので、 'id'を得ることはできません。 – HashRocket

答えて

0

showの構造は次のとおりです。

get '/products/:id', to: 'products#show'

だから、単に使用してそれを得ることができます:

params[:id] 

UPDATE:代わりに使用しての上記の質問のアップデートで

、: はparams[:id] それが使用する必要があります。 params[:product]

+0

私はすでにこれを試しましたが、うまく動作していません。 これは私がそれを使用しようとしている方法です: @ cart.product_name = params [:id] – PartyOnRails

+0

あなたの問題に関連するコードを投稿して、決定することができますか?あなたの 'ルート'と 'コントローラ'。 '=>「の製品番号のadd_to_cart'' '追加' を取得 と行動自体 ' defのadd_to_cart @cart = Cart.new @ cart.username = current_user.id: – HashRocket

+0

これはアクションに私のルートがあるものですcart.product_name = paramsは@ [:ID] @ cart.price = 100 @ cart.amount = 1 @ cart.save @products = Product.all 投稿しないでください "インデックス" end' – PartyOnRails

関連する問題