Simple_form_for不使用AJAX?

时间:2015-04-23 10:36:44

标签: ruby-on-rails ajax ruby-on-rails-3 simple-form

我的表单出现了一个奇怪的问题:

= simple_form_for([@item, @item_comment], :remote => true, id: "new_item_comment", :url => item_item_comments_path(@item)) do |f|
  = f.input :comment, :label => false
  = f.submit "Save", :class => "btn_save left"

我认为应该致电:

Started POST "/de-de/items/20150423/item_comments" for 127.0.0.1 at 2015-04-23 12:29:33 +0200
Processing by ItemCommentsController#create as JSON

但我将其视为HTML:

Started POST "/de-de/items/20150423/item_comments" for 127.0.0.1 at 2015-04-23 12:29:33 +0200
Processing by ItemCommentsController#create as HTML

它曾经工作,但没有更改这些部分,它只使用HTML。

有没有人知道如何解决这个问题?

---更新1 ---

我将这些行添加到我的coffeescript中:

$('form[data-remote]').submit (e)->
   e.preventDefault()
   $.rails.handleRemote $('form[data-remote]')

它有效,但我对这个解决方案并不满意,因为我不知道是什么原因导致了这个问题。

1 个答案:

答案 0 :(得分:1)

通常在2个案件中发生在我身上:

  1. 我在表单上输入了一个文件(强制ruby跳过remote: true选项)
  2. 我遇到了jquery-ujs javascript文件的麻烦(实际上是处理rails html attrs)
  3. 所以请检查生成的html是否有<form .... data-remote='true'..>,并检查javaery-ujs(或任何你想要使用的处理程序)是否包含在页面javascripts中。

    如果您在此之后仍然遇到麻烦,可以在jquery-ujs

    中的某处设置断点