我用谷歌搜索了很长时间,但没有找到我的问题的完整答案。
在我的应用程序中,我使用了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 %>