Я долго гуглял, но не нашел полного ответа на мою проблему.
В моем приложении я использую Legited_resources Итак, я хочу переопределить перенаправление после успешного создания объекта Comment, поэтому я пишу:
update! do |success, failure|
success.html { redirect_to parent_url }
end
Я знаю, что могу сделать это в одной строке, но мне нужен блок, потому что мне нужно добавлять действия, когда происходит сбой. Поэтому я пишу:
update! do |success, failure|
success.html { redirect_to parent_url }
failure.html {
add_breadcrumb t("share.Home"), root_path
add_breadcrumb t("project.Projects"), projects_path
...
add_breadcrumb t("comment.edit_comment"), edit_resource_url
render :action => :edit and return }
end
И когда все в порядке, он перенаправляет правильно, но есть какие-то ошибки. Я не получаю URL-адрес действия редактирования, у меня отображается URL-адрес действия, но отображаются форма редактирования и ошибки. Это нормально или я что-то не так делаю?
Вот мой перевод формы для дополнительной информации:
<% link = "project_#{@comment.commentable_type.downcase}_comment_path"%>
<%= semantic_form_for [@project,@comment.commentable,@comment], :validate => true, :url => send(link,@project,@comment.commentable,@comment), do |f| %>
<%= render 'form', :f => f %>
<% end %>