开发者

inherited_resources, right way to render with validation errors

开发者 https://www.devze.com 2023-04-13 07:13 出处:网络
I googled for a long time, but didn\'t find full answer for my problem. In my app I use inherited_resources. So, I want to override redirect after succefull creation of Comment object, so I write:

I googled for a long time, but didn't find full answer for my problem.

In my app I use inherited_resources. So, I want to override redirect after succefull creation of Comment object, so I write:

update! do |success, failure|
  success.html { redirect_to parent_url }
end

I know that I could do it in one string, but I need block, because I need to add actions when failure happens too. So I write:

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

And when everything is OK it redirects right, but there are any errors I don't get URL of edit action, I have show action URL, but edit form and errors are displayed. Is this all right or am I doing anything wrong? Here is my rendering of form for additional information:

<% 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 %>


If there is no answers I think that this is all right, maybe render is render, but action is already done and URL changed. Anyway, thanks.

0

精彩评论

暂无评论...
验证码 换一张
取 消