Rails路由在应用程序中消失但在rake路由中存在

时间:2010-08-05 13:47:03

标签: ruby-on-rails routing ruby-on-rails-3

我有一个神秘的问题......

在我的routes.rb中我定义了一些路由,例如

resources :projects, :except => [:destroy] do
  get :edit_flyer, :on => :member
  get :guests, :on => :member
end

如果我运行佣金路线,我会

                     edit_flyer_project GET    /projects/:id/edit_flyer(.:format)                      {:controller=>"projects", :action=>"edit_flyer"}
                         guests_project GET    /projects/:id/guests(.:format)                          {:controller=>"projects", :action=>"guests"}
                                        GET    /projects(.:format)                                     {:controller=>"projects", :action=>"index"}
                               projects POST   /projects(.:format)                                     {:controller=>"projects", :action=>"create"}
                            new_project GET    /projects/new(.:format)                                 {:controller=>"projects", :action=>"new"}
                                        GET    /projects/:id(.:format)                                 {:controller=>"projects", :action=>"show"}
                                project PUT    /projects/:id(.:format)                                 {:controller=>"projects", :action=>"update"}
                           edit_project GET    /projects/:id/edit(.:format)                            {:controller=>"projects", :action=>"edit"}

如您所见,定义了show动作。 但是在我的rails应用程序中,没有定义路线显示。

我在应用程序控制器中添加它只是为了监控路由。

before_filter :zba

def zba
  ActionController::Routing::Routes.named_routes.routes.each do |name, route|
    puts "%20s: %s" % [name, route]
  end
  exit
end

看来路线动作没有定义......

然后,我尝试清理我的routes.rb,就像删除我所有的后命名空间一样,并且神奇地工作。

这似乎是一个错误,或者我不知道发生了什么。

你知道如何调试这个吗?我也尝试删除插件/宝石。没变。

我使用ruby 1.8.7运行Rails3.rc!

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

试试这个

resources :projects, :except => [:destroy] do
  member do
    get :edit_flyer
    get :guests
  end
end