rails action_controller Обработка контроллером (#show as * / *) - PullRequest
2 голосов
/ 26 сентября 2011

Я отправляю ajax-запрос одному из моих действий контроллера #, но мой журнал разработки показывает

Processing by FormsController#show as */*

в то время как FormsController # должен отображаться как JS как запрос ajax

Из-за этого его рендеринг в формате, который он находит первым в моем ответе на блок в контроллере

Например: -

respond_to do |format|
  format.html{ }
  format.js { }
end

если я отправляю ajax-запрос на мой контроллер, он не работает должным образом, так как мой контроллер отображает html-ответ, в то время как он должен обрабатывать JS-запрос.

Но если блок response_to находится таким образом

respond_to do |format|
  format.js { }
  format.html{ }
end

Работает как положено.

Я думаю

Processing by FormsController#show as */* 

отвечает, какой формат он находит первым в блоке response_to.

Но меня беспокоит то, почему мой журнал разработки показывает

Processing by FormsController#show as */*

вместо

Processing by FormsController#show as JS

когда я отправил запрос ajax. Я делаю что-то не так или пропускаю маленький, но важный кусок?

1 Ответ

2 голосов
/ 26 сентября 2011

Обновите файл Rails.js.

Я предполагаю, что вы используете jQuery-Rails. Некоторое время назад AJAX-запросы Rails не устанавливали автоматически запрашиваемый тип содержимого. С тех пор это было решено, поэтому если вы обновляете, у вас не должно быть */* в качестве типа содержимого с наивысшим приоритетом в заголовках HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...