Rails - 没有来自form_for的参数

时间:2017-07-07 14:12:20

标签: ruby-on-rails forms

我有一个非常简单的form_for,其中有两个文本字段已经停止将值发送到params哈希。这是表格:

<%= form_for @item, remote: true do |f| %>
  <%= f.text_field :garment_type, class: "form-control", placeholder: "Garment type" %>
  <%= f.text_field :description, class: "form-control", placeholder: "Description" %>
<% end %>

没有提交按钮,因为表单是由jQuery提交的。我已经尝试过定期提交表格而没有AJAX,但它没有任何区别。

提交表单后,这是params哈希:

<ActionController::Parameters {"utf8"=>"✓", "item"=>{"garment_type"=>"", "description"=>""}, "controller"=>"items", "action"=>"create"} permitted: false>

正如你所看到的,它认识到那里的田地,它们只是空的。

控制器代码:

class ItemsController < ApplicationController
  def create
    binding.pry
    @item = Item.create!(item_params)
  end

  private

  def item_params
    params.require(:item).permit(:garment_type, :description, :order_id)
  end
end

生成的HTML:

<form class="new_item" id="new_item" action="/items" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓">
      <input class="form-control" placeholder="Garment type" type="text" name="item[garment_type]" id="item_garment_type">
      <input class="form-control" placeholder="Description" type="text" name="item[description]" id="item_description">
</form>

jQuery:

$('.next').click(function() {
  var step = this.dataset.step;
  var nextStep = parseInt(step) + 1;

  $('#form-step-' + step).hide();
  $('#form-step-' + nextStep).show();
})

$('#next-1').click(function() {
  $('#new_item').submit(); 
})

有什么想法吗?

由于

0 个答案:

没有答案