2010-06-20 55 views
1

这对我来说似乎是一个相当简单的问题,但我一直有一些问题。验证后的导轨保存转到编辑路径

在我的意见,我会用上类似

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

和它特定的形式,新的页面上的东西。够简单,而且效果很好。

不幸的是,我发现,当你有一个“新活动”的形式(假设正常脚手架控制器),该网址会从

http://localhost:3000/activities/new 

提交容易出错的形式

http://localhost:3000/activities 

但它仍然会显示具有相应错误的新活动表单。所以基本上所有的东西都应该如何运作,除了我需要的网址为http://localhost:3000/activities/new为current_page?函数来识别它确实是一个新的表单页面。

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

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

认为你需要检查创建以及新

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

不是很漂亮可能把它包装在一个辅助方法中?

+0

谢谢!那是一个“哦,哦!”我的时刻:) – jim 2010-06-20 04:29:13

0

您还可以检查创建的字段是否为空。因为它不会被设置,直到活动创建。