2014-11-24 58 views
0

我有一個工作表單,這是與AJAX submited正確處理爲'/'。這是一個額外的確認數據散列(並需要確認提交)。 當我想形式不確認,強麥看起來不錯,但通話將被視爲HTML和失敗由於缺少模板Rails的form_tag遠程:真正處理爲HTML(不* 1 *)沒有'數據'哈希

其中一個頁面都形成做好自己的「東西」:

<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') },在第一種形式。 兩種形式呈現數據的遠程= 「真」:

<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 

任何想法?

回答

0

嘗試在您的形式添加格式:

<%= form_tag(coupon_apply_path, format: :js ,method: :post, data: { confirm: t('are_you_sure') }, id: 'apply-coupon', remote: true) do |f| %> 
+1

我有與「數據」哈希形式沒有問題。這一個按預期工作。但第二個(沒有「數據」)不。我嘗試了'form_tag(coupon_apply_path,format::js,method :: post,id:'apply-coupon',remote:true)',但問題依然存在=>'通過CartController#coupon_apply處理爲HTML' – Foton 2014-11-25 15:17:19

+2

如果我使用' form_tag(coupon_apply_path(format :: js),method :: post,id:'apply-coupon',remote:true)'then request is'Processing by CartController#coupon_apply as JS',but(correct)response is not evaluate as腳本並顯示爲文本'('#coupon')。replaceWith(...)' – Foton 2014-11-25 15:24:51

+0

如果我從原始頁面(帶有表單)的JS控制檯執行返回的腳本,它會執行它應該執行的操作。所以JS響應沒有錯誤。 – Foton 2014-11-25 15:39:10