我有一个神秘的问题......
在我的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!
感谢您的帮助!
答案 0 :(得分:2)
试试这个
resources :projects, :except => [:destroy] do
member do
get :edit_flyer
get :guests
end
end