多部分表单允许发送未填充的参数,参数丢失或值为空

时间:2016-06-14 18:56:26

标签: ruby-on-rails

我有一个包含一些必需输入的表单。当我将多部分设置为true并且我的所有字段都为空时,提交在参数中没有任何值。

<form class="simple_form form-horizontal ng-pristine ng-valid" role="form" novalidate="novalidate" id="new_coupon" enctype="multipart/form-data" action="/coupons" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="Ssr+XnrLBfHur1C43sIfh3mJihR0MrrLdeubEaJXcoMhrjl7wZcJF4ox+54uQ+ebkg+EZzIVV9X6iLaZSHcNKQ==">
  <div>
    <label class="string required control-label" for="coupon_title"><abbr title="required">*</abbr> Titre du bon plan</label>
    <input class="string required form-control" type="text" value="" name="coupon[title]" id="coupon_title"><span class="help-block">doit être rempli(e)</span>
  </div> 
  <div class="form-group">
    <input type="submit" name="commit" value="Enregistrer mon bon plan" data-disable-with="Enregistrer mon bon plan">
  </div>
</form>

当我删除enctype属性时,它可以工作,如果它们是空的,我就不会重定向。

当enctype打开时,我的参数看起来像这样:

{"utf8"=>"✓", "authenticity_token"=>"qqLfnvg/qzHcdAYAaKJYyIGal6zkCKllW0ttRoVAba7Bxhi7Q2On17jqrSaYI6DUahyZ36IvRHvUKEDOb2ASBA==", "commit"=>"Enregistrer mon bon plan"}

如您所见,我发送的参数优惠券缺失

有人知道我该怎么做来验证我的表格?

1 个答案:

答案 0 :(得分:0)

这是this PR中解决的错误。它在Rack 2.0.0.rc1中修复。