通过link_to ruby​​在rails上传递参数

Lil*_*ilz 69 parameters ruby-on-rails

我有这行代码:

<%= link_to "Add to cart", :controller => "car", :action => "add_to_cart", :car => car %>
Run Code Online (Sandbox Code Playgroud)

当我在add_to_cart方法...我怎么能打电话给:汽车好吗?

@car = Car.new(params[:car])
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它说我正在尝试将其字符串化.

我不明白什么是错的; 因为我用它来创建新用户,它运行正常.

顺便说一句,汽车是我的汽车对象.

jua*_*m55 138

尝试:

<%= link_to "Add to cart", {:controller => "car", :action => "add_to_cart", :car => car.id }%>
Run Code Online (Sandbox Code Playgroud)

然后在你的控制器中

@car = Car.find(params[:car])
Run Code Online (Sandbox Code Playgroud)

哪个,会在您的'汽车'表中找到(与轨道复数化)在您的数据库中找到一个id == to car.id的汽车

希望能帮助到你!快乐的编码

一年多以后,但如果你看到它或任何人,我可以使用积分; D.

  • 但是,如果参数取决于输入的值(本质上可能是动态的)呢? (2认同)

Jon*_*ung 80

上面并没有为我工作,但这个确实

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


Mat*_*ght 6

也许试试这个:

<%= link_to "Add to cart", 
            :controller => "car", 
            :action => "add_to_cart", 
            :car => car.attributes %>
Run Code Online (Sandbox Code Playgroud)

但我真的很想看看汽车对象在哪里设置这个页面(即视图的其余部分).