inherited_resources,使用验证错误进行渲染的正确方法

时间:2011-10-14 18:41:12

标签: validation inherited-resources rails-3.1

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

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

1 个答案:

答案 0 :(得分:0)

如果没有答案,我认为这样就可以了,也许渲染是渲染,但是操作已经完成并且URL已更改。无论如何,谢谢。