web-dev-qa-db-ja.com

link_toでパラメーターを渡すRuby on rails

次のコード行があります。

<%= link_to "Add to cart", :controller => "car", :action => "add_to_cart", :car => car %>

add_to_cartメソッドでimの場合...どうすれば:carを呼び出すことができますか?

@car = Car.new(params[:car])

私はそれを文字列化しようとしていると言っているので、それはうまくいきません。

何が悪いのかわかりません。これを使用して新しいユーザーを作成し、うまく機能したからです。

ところで、車は私の車のオブジェクトです。

68
Lilz

試してください:

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

そしてあなたのコントローラーで

@car = Car.find(params[:car])

これは、「cars」テーブルで(Rails複数化の場合のように)DBでid == to car.idの車を検索します)

それが役に立てば幸い!ハッピーコーディング

1年以上後ですが、あなたがそれを見たり、誰かが見たら、ポイントを使用できます; D

138
juanm55

上記は私にはうまくいきませんでしたが、thisはうまくいきました

<%= link_to "text_to_show_in_url", action_controller_path(:gender => "male", :param2=> "something_else") %>

80
Jonathan Leung

たぶんこれを試してください:

<%= link_to "Add to cart", 
            :controller => "car", 
            :action => "add_to_cart", 
            :car => car.attributes %>

ただし、このページ(つまり、ビューの残りの部分)の車のオブジェクトがどこで設定されているかを確認したいと思います。

6
MattMcKnight

おそらくcarオブジェクトをパラメーターとして渡したくないので、単に_car.id_を渡してみてください。 [カートに追加]をクリックした後にinspect(params)すると何が得られますか?

2
bensie