Ruby on rails Rails:关于:as=>;的简单路由问题:某物

Ruby on rails Rails:关于:as=>;的简单路由问题:某物,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,使用Rails 3.1(不确定这是否适用于3.0等) 在routes.rb中以下两者之间的区别是什么: match "team" => "users#index" 及 我这样问是因为我说: 3.6命名路由 可以使用:as选项为任何管线指定名称 match 'exit' => 'sessions#destroy', :as => :logout 这将在应用程序中创建注销路径和注销url作为命名帮助程序。调用注销路径将返回/退出 但是,在上面的第一个示例中,我可以在我

使用Rails 3.1(不确定这是否适用于3.0等)

routes.rb中以下两者之间的区别是什么:

  match "team" => "users#index"

我这样问是因为我说:


3.6命名路由 可以使用:as选项为任何管线指定名称

 match 'exit' => 'sessions#destroy', :as => :logout
这将在应用程序中创建注销路径和注销url作为命名帮助程序。调用注销路径将返回/退出


但是,在上面的第一个示例中,我可以在我的视图中访问团队路径和团队url?!?那么:as=>:团队到底做了什么?我一定忽略了一些东西,正如我看到的示例代码所写的那样:

match "logout" => "sessions#destroy", :as => :logout
match "login" => "sessions#new", :as => :login
match "signup"  => "users#new", :as => :signup

虽然从我有限的测试来看,
:as=>:有些东西似乎是多余的

这似乎是多余的,但不是。。。当您的路线名称与您想要给出的名称不同时

默认情况下,ActionDispatcher会做很多事情。您应该尝试在控制台中触发
rake routes
,以测试此行为

另一个例子是快捷方式:

match "account/profile"
# same as
match "account/profile", :to => "account#profile"
这将创建命名路由:
account\u profile

match "account/profile"
# same as
match "account/profile", :to => "account#profile"