【发布时间】:2014-11-24 15:54:30
【问题描述】:
我有工作表单,它是使用 AJAX 提交的,并且被正确处理为“/”。这个有额外的确认数据哈希(并且需要在提交时确认)。 当我想要表单而不确认时,ale 看起来不错,但调用被视为 HTML 并且由于缺少模板而失败
一页一页的形式都在做他们的“事情”:
<h1>GOOD ajax call as */* looking for 'coupon_apply.js.erb'</h1>
<%= form_tag(coupon_apply_path, method: :post, data: { confirm: t('are_you_sure') }, id: 'apply-coupon', remote: true) do |f| %>
<div class="clearfix">
<label for="coupon"><%= t('coupon.coupon').capitalize %>:</label>
<input type="text" name="coupon" id="coupon" value=""/>
<button type="submit" value="Apply to your order" class="submit">
<span><span><%= t('coupon.apply_order') %></span></span>
</button>
</div>
<% end %>
<h1>BAD (maybe) ajax call as HTML looking for 'coupon_apply.html.erb'</h1>
<%= form_tag(coupon_apply_path, method: :post, id: 'apply-coupon', remote: true) do |f| %>
<div class="clearfix">
<label for="coupon"><%= t('coupon.coupon').capitalize %>:</label>
<input type="text" name="coupon" id="coupon" value=""/>
<button type="submit" value="Apply to your order" class="submit">
<span><span><%= t('coupon.apply_order') %></span></span>
</button>
</div>
<% end %>
区别仅在于data: { confirm: t('are_you_sure') }, 的第一种形式。
两种形式都使用 data-remote="true" 渲染:
<form accept-charset="UTF-8" action="/cs/kosik/aktivovat-slevovy-kupon" data-confirm="Jste si jistí?" data-remote="true" id="apply-coupon" method="post">
=> Started POST "/cs/kosik/aktivovat-slevovy-kupon" for 127.0.0.1 at 2014-11-24 16:38:40 +0100
=> Processing by CartController#coupon_apply as */*
和
<form accept-charset="UTF-8" action="/cs/kosik/aktivovat-slevovy-kupon" data-remote="true" id="apply-coupon" method="post">
=> Started POST "/cs/kosik/aktivovat-slevovy-kupon" for 127.0.0.1 at 2014-11-24 16:39:28 +0100
=> Processing by CartController#coupon_apply as HTML
有什么想法吗?
【问题讨论】:
标签: jquery ruby-on-rails ajax forms