Rails 3.1: ответьте на запрос json с HTML - PullRequest
1 голос
/ 15 сентября 2011

Можно ли ответить на запрос json с помощью html вместо json?

Я хотел бы сделать это:

respond_to do |format|
  format.html { render 'page' }
  format.json { render 'page' } #render an html page instead of a JSON response
end

, но Rails будет искать "page.json"и выдаст ошибку.

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Вам необходимо явно указать формат, тип содержимого (по умолчанию application/json) и макет (по умолчанию нет):

respond_to do |format|
  format.html { render 'page' }
  format.json do              # render an html page instead of a JSON response
    render 'page.html', {
      :content_type => 'text/html',
      :layout       => 'application'
    }
  end
end
0 голосов
/ 15 сентября 2011

Просто используйте полное имя файла. render 'page.html' (или как этот файл называется).

Обратите внимание, что хотя это должно работать, если вы делаете это, вы, вероятно, делаете что-то не так. Подумайте, как вы можете реструктурировать свой код, чтобы вам не приходилось нарушать правила.

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