javascript - Rails 4 ActionController::UnknownFormat format.js 错误

标签 javascript ruby-on-rails ajax ruby-on-rails-4

我在用户页面上有一个搜索表单

= form_tag(action: 'search', remote: true ) do
    = date_field_tag 'start'
    = submit_tag "Find" 

当我提交表单时,出现以下错误:

406 Not Acceptable in 4ms (ActiveRecord: 0.7ms)

    ActionController::UnknownFormat - ActionController::UnknownFormat:
      actionpack (4.2.5) lib/action_controller/metal/mime_responds.rb:219:in `respond_to'
      app/controllers/users_controller.rb:40:in `search'

我的 Controller 操作是:

def search
    puts  params
    respond_to do |format|
      format.js
    end
end

我有一个 search.js.erb 文件,它仅打印到控制台。

我不明白为什么这不起作用。

最佳答案

您调用方法 form_tag 的方式错误。如果您在 form_tag 中指定 action,则必须在不同的哈希中指定它们。

= form_tag( { action: 'search' }, { remote: true } ) do

这就是为什么您收到 HTML 请求而不是 JS 请求的原因。

您必须明确告诉 form_tag 您正在发送 action: 'search' 来获取 url_for_option 哈希,以及 remote : true 对于 options 哈希。

这是方法签名:

form_tag(url_for_options = {}, options = {}, &block)

有关更多信息,请访问 form_tag .

关于javascript - Rails 4 ActionController::UnknownFormat format.js 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868180/

相关文章:

ruby-on-rails - rails 4 |使用位掩码在表单中为用户分配角色 |好榜样

ruby-on-rails - 带有年龄的 Rails 日期验证

javascript - ajax调用后替换类名

javascript - 从 AJAX post 访问 C# Controller 中的表单数据

javascript - 关闭一个后重新打开模式,laravel

javascript - 使用 jquery html() 将元素与 html 内容匹配

ruby-on-rails - 将 child 设置为 "nil"时,Rails/ActiveRecord has_one 关联行为

javascript - 从文本区域逐行删除

javascript - 异步并等待获取请求

javascript - 编写代码完成和代码检查友好的 Javascript 库