2016-03-08 67 views
1

我有一個用戶頁面軌道4的ActionController :: UnknownFormat format.js錯誤

= 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文件。

我不明白爲什麼這不起作用。

+0

我想你需要指定格式,如'action:'search.js'' – hawk

+0

什麼是在服務器日誌中生成的請求格式? – Pavan

+0

@Pavan'Processing by UsersController#搜索爲HTML' –

回答

1

您正在調用方法form_tag錯誤的方法。如果您在form_tag中指定了action,則必須在不同的散列中指定它們。

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

這就是爲什麼你要求作爲HTML請求而不是JS請求的原因。

你必須要明確告訴form_tag您的url_for_option散列發送action: 'search',並remote: trueoptions哈希。

這裏的方法簽名:

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

欲瞭解更多信息,頭部到form_tag