Не возвращать действие контроллера остановки для удаленного вызова
У меня есть проблема с формой sendind два параметра для контроллера. Я хотел бы, чтобы erb.js
шаблон не будет запущен, если update
объекта не удается.
я добавил return
в конце моего действия, но вид все еще срабатывает.
Она - бит моего контролера, который, я думаю, отвечает за действие представления или нет:
if @object.update(some_params)
...
respond_to do |f|
f.html {redirect_to some_path_here}
f.js
end
end
return
1 ответ
Решение
Это происходит, потому что в соответствии с соглашением о конфигурации Rails
автоматически отображает вид действия, если это не указано явно.
Чтобы избежать рендеринга, одним из вариантов будет установка head, если @object
не был успешно обновлен:
if @object.update(some_params)
...
respond_to do |f|
f.html {redirect_to some_path_here}
f.js
end
else
head :unprocessable_entity
end