2

我用谷歌搜索了很长时间,但没有找到我的问题的完整答案。

在我的应用程序中,我使用了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 %>
4

1 回答 1

0

如果没有答案,我认为这没关系,也许渲染是渲染,但操作已经完成并且 URL 已更改。不管怎样,谢谢。

于 2011-10-24T07:30:01.530 回答