Это код контроллера rails:
respond_to do |format|
if @article.save
if request.xhr?
format.js { render json: @article.id }
else
format.html { redirect_to @article, notice: 'Article was successfully created.' }
format.json { render :show, status: :created, location: @article }
end
[...]
end
Это запрос XMLHttpRequest:
var xhr = new XMLHttpRequest();
xhr.open('POST', "/articles/")
xhr.withCredentials = true;
var formData = new FormData();
formData.append('utf8', true);
formData.append('article[link]', "foo");
formData.append('article[title]', "bar");
formData.append('commit', "Create+Article");
xhr.setRequestHeader("X-requested-with", "XMLHttpRequest")
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
console.log(xhr.response);
}
}
xhr.send(formData);
Ответ, когда я запускаю запрос на локальном хосте и сохраняет его, является идентификаторомстатья, как и должно быть, но ответом на heroku является ошибка «Шаблон отсутствует».
Я пытался добавить head :ok
и format.html { redirect_to @article, notice: 'Article was successfully created.' }
в request.xhr?
, но это не имело значения.