我用谷歌搜索了很长时间,但没有找到我问题的完整答案。
在我的应用中,我使用inherited_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 %>
答案 0 :(得分:0)
如果没有答案,我认为这样就可以了,也许渲染是渲染,但是操作已经完成并且URL已更改。无论如何,谢谢。