Rails 4 ActionController :: UnknownFormat format.js错误

时间:2016-03-08 13:03:59

标签: 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'

我的控制器操作是:

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

我有一个只打印到控制台的search.js.erb文件。

我无法弄清楚为什么这不起作用。

1 个答案:

答案 0 :(得分:1)

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

= 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