Rails: обязательно ли оборачивать мой POST-ответ в блок response_to? - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть форма AJAX, которая отправляет запрос POST к контроллеру.Контроллер отвечает в формате JSON.

Здесь reponse - это JSON:

  def send_form_response(response)
    render json: response
  end

Вышеописанное работает нормально, но я продолжаю видеть примеры, использующие respond_to.Моя форма все еще работает, когда я заключаю свой ответ в блоке respond_to.

  def send_form_response(response)
    respond_to do |format|
      format.json { render json: response }
    end
  end

Дает ли мне какое-либо преимущество использование respond_to?Будет ли что-нибудь плохое, если я не сделаю?Или это не имеет значения в этом случае?

1 Ответ

0 голосов
/ 23 сентября 2018

respond_to используется для обработки нескольких ответов в controller#action

Если клиент хочет HTML в ответ на это действие, простоотвечайте так, как мы делали раньше, но если клиент хочет XML, верните ему список людей в формате XML. "(Rails определяет желаемый формат ответа из заголовка HTTP Accept, представленного клиентом.)

Скажем, например: если вы хотите, чтобы send_form_response(response) ответил HTML и JSON, то вы бы сделали это следующим образом

def send_form_response(response)
  respond_to do |format|
    format.html
    format.json { render json: response }
  end
end

Вы можете сделать то же самое с respond_with

respond_to :html, :xml, :json
def send_form_response(response)
  respond_with response
end

Итак, чтобы ответить на ваши вопросы

Предоставляет ли использование response_to какие-либо преимущества?

Не в вашем случае, когда вы запрашиваете только один ответ

Произойдет ли что-нибудь плохое, если я этого не сделаю?

Не в вашем случае, нет.

Разве это не имеет значения в этом случае?

Нет, совсем нет.

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