2016-03-08 3 views
1

У меня есть форма поиска на странице пользователейRails 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 'Обработка по UserController # поиск как HTML' –

ответ

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.