Параметр 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)
после нажатия "Добавить в корзину"?