2009-12-14 3 views
60

У меня есть эта строка кода:параметр проходят по link_to рубин на рельсах

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

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

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

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

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

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

ответ

127

Try:

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

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

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

, который найдет в вашем «вагоне» (как при r ails pluralization) в вашей БД автомобиль с id == до car.id

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

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

+0

Но что, если параметр зависит, скажем, от значения ввода, который может быть динамическим по своей природе? – Sebastialonso

2

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

+0

проблема в том, что я не имею эти автомобили сохранены в любом месте, так как я соскабливание информатинов из Интернета и я их не храню нигде. Идентификатор еще не существует, и, кроме того, это было бы бесполезно:/ – Lilz

+0

Еще раз, что вы получаете, когда проверяете (params)? – bensie

+1

params [: product] .inspect come back empty "" – Lilz

6

Может попробовать это:

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

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

69

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

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

Смежные вопросы