В добавлении библиографической формы я создаю форму для добавления автора, которая добавляет автора с помощью json.response_to format.html слишком мало аргументов
Это прекрасно работает.
Однако, когда автор добавляется в базу данных, я хочу показать сообщение об успешном завершении.
Это мой код:
def create
@auteur = Auteur.new(params_auteur)
respond_to do |q|
if @auteur.save
format.html{ redirect_to @auteur, notice: 'Auteur added successfully.'}
format.js{}
format.json{
render json: @auteur, status: :created, location: @auteur
}
else
format.html{ render action: "new"}
format.json{ render json: @auteur.errors, status: :unprocessable_entity}
end
end
end
Затем я добавил файл views/auteurs/create.js.erb
, который содержит этот код:
$("<%= escape_javascript(render @auteur) %>").appendTo(".bloque_ajoute_auteur");
Сообщение об ошибке я получаю генерируется сразу после (успешной) вставки новый автор в базе данных:
Completed 500 Internal Server Error in 10ms (ActiveRecord: 1.6ms)
ArgumentError (too few arguments):
app/controllers/administration/auteurs_controller.rb:23:in `format'
app/controllers/administration/auteurs_controller.rb:23:in `block in create'
app/controllers/administration/auteurs_controller.rb:21:in `create'
Линия 21 - начало o f блок response_to; линия 23 является format.html{ redirect_to @auteur, notice: 'Auteur ajouté.'}
Я думал, что довольно внимательно следил за этим: http://guides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns
Это правильно! Глупая ошибка. Тем не менее, никакое сообщение вообще не отправляется обратно этой функцией (ничего в журнале сервера и в средствах разработки Firefox). – thiebo