验证后保存的Rails转到编辑路径

时间:2010-06-20 04:10:22

标签: ruby-on-rails ruby routes

这对我来说似乎是一个相当简单的问题,但我遇到了一些问题。

在我的一个观点中,我使用类似

的内容
<% if current_page?(:controller => "activities", :action => "new") %>
        *Do something here*
<% end %>

并且它在表单的新页面上执行特定操作。很容易,效果很好。

不幸的是,我发现当你有一个“新活动”表格(假设正常的脚手架控制器)时,网址将来自

http://localhost:3000/activities/new

提交容易出错的表格后

http://localhost:3000/activities

但它仍会显示具有相应错误的新活动表单。所以基本上一切都运行如何除了我需要为current_page提供http://localhost:3000/activities/new的网址?功能,以确认它确实是一个新的表单页面。

我想知道这个问题是否有某种解决方法。谢谢!

OH,这是控制器代码,以防任何人需要看到它

控制器代码

      def new
        @activity = Activity.new
      end

      def create
         @activity = Activity.new(params[:activity])
         if @activity.save
            flash[:notice] = "Successfully created activity."
            redirect_to @activity
          else
             render :action => 'new'
          end
       end

2 个答案:

答案 0 :(得分:2)

认为您需要检查创建和新

<% if current_page?(:controller => "activities", :action => "new") or current_page?(:controller => "activities", :action => "create") %>

不是那么漂亮可能用辅助方法把它包起来?

答案 1 :(得分:0)

您还可以检查创建的字段是否为空。因为在创建活动之前不会设置它。