У меня это в представлении Rails 3.0.3:
<%= form_tag line_items_path(:product_id => @product), :remote => true do %>
<%= number_field_tag (:amount, 1, { :size => 3, :min => 1}) %>
<%= submit_tag t('button.add_to_cart'), :name => nil %>
<% end %>
Представление выглядит вполне нормально.В методе создания line_items_controller я пытаюсь получить доступ к числовому полю:
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id, params[:amount])
Это не сработало, поэтому я попытался просмотреть числовое поле, напечатав его на консоли:
p params[:amount]
Это напечатало «ноль» независимо от того, что я ввел в поле формы.Я также напечатал весь хэш params
с
p params
и получил
{"product_id"=>"1", "action"=>"create", "controller"=>"line_items", "locale"=>"fi"}
, то есть поле amount
отсутствует, что объясняет «ноль», но яЯ немного (хорошо, очень) запутался здесь, так как я прочитал документацию по form_tag и понял, что контроллер должен видеть содержимое поля через params[:amount]
, но это не так.
Пожалуйста, помогитемне.Что я делаю не так?
/ л.с.