Параметр pass by link_to ruby ​​on rails

У меня есть эта строка кода:

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

когда im в методе add_to_cart... как я могу позвонить: автомобиль, пожалуйста?

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

Это не работает, потому что он говорит, что я пытаюсь его укрепить.

Я не понимаю, что случилось; потому что я использовал это для создания новых пользователей, и он работал нормально.

Кстати, автомобиль - мой автомобиль.

Ответ 1

Try:

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

а затем в вашем контроллере

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

который найдет в вашей таблице "автомобили" (например, с плюрализацией рельсов) в вашей БД автомобиль с id == до car.id

надеюсь, что это поможет! счастливое кодирование

более года спустя, но если вы видите это или кто-либо другой, я могу использовать точки; D

Ответ 2

Выше не работало для меня, но этот сделал

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

Ответ 3

Возможно, попробуйте следующее:

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

Но я действительно хотел бы посмотреть, где объект автомобиля получает настройку для этой страницы (т.е. остальная часть представления).

Ответ 4

Вероятно, вы не хотите передавать объект car в качестве параметра, попробуйте просто передать car.id. Что вы получаете, когда вы inspect(params) после нажатия "Добавить в корзину"?