我有一个非常简单的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();
})
有什么想法吗?
由于