У меня есть мои рельсы создать действие:Rails Действие не Перенаправление
def create
@assessment = Assessment.new(user_id: current_user.id, patient_id: params[:assessment][:patient_id], template_id: params[:assessment][:template_id])
@answers = params[:assessment][:answers]
if @assessment.save
@answers.each do |question, array|
@assessment.answers.create(question_id: question, content: array[0], tracking: array[1])
end
redirect_to assessments_path
else
render :new
end
end
Когда я отправляю к этой акции, @assessment становится созданный в базе данных (а также ответы), а журнал показывает:
Redirected to http://localhost:3000/assessments
Completed 302 Found in 54ms (ActiveRecord: 15.8ms)
Но вид в моем браузере не меняется. Как я могу заставить его перенаправить?
FYI это, как я вношу данные формы:
$("#new_assessment").find('input[name=commit]').on('click', function(e){
e.preventDefault();
var $inputs = $('#new_assessment :input');
Array.prototype.clean = function(deleteValue) {
for (var i = 0; i < this.length; i++) {
if (this[i] == deleteValue) {
this.splice(i, 1);
i--;
}
}
return this;
};
var template_id = gon.template.id;
var patient_id = gon.patient.id;
var answers = {};
$('.question').each(function() {
var question = $(this).find('.question-field').data('question');
var answer = $(this).find('.question-field').val();
var trackable = $(this).find('.trackable').is(':checked');
if (answer && answer.length > 0 && answer != "undefined") {
answers[question] = [answer, trackable];
}
});
$.ajax({
url: "/assessments",
type: "POST",
data: {assessment:{template_id, patient_id, answers}},
success: function(resp){
console.log("success") },
error: function(err) {
console.log("error");
}
});
});
вы должны удалить "e.preventDefault();" в вашем javascript-коде, если вы хотите, чтобы ваша страница перезагрузилась? – rxing
Но тогда форма подала бы обычный путь рельсов (без моего JS) –
Просто nit: вы должны перенаправить на полный URL-адрес. Используйте 'redirect evaluationments_url', чтобы быть абсолютно правильным. –