使用Rails 3.1(不确定这是否适用于3.0等)
在 routes.rb 之间有什么区别:
match "team" => "users#index"
和
match "team" => "users#index", :as => :team
我问,因为docs说:
3.6命名路由 您可以使用:as选项为任何路径指定名称。
match 'exit' => 'sessions#destroy', :as => :logout
这将在您的应用程序中创建logout_path和logout_url作为命名助手。调用logout_path将返回/退出
但是,在上面的第一个例子中,我可以访问team_path& team_url在我的观点中?!?那是什么:as => :团队做到了吗?我必须忽略一些东西,因为我看到的代码示例如下:
match "logout" => "sessions#destroy", :as => :logout
match "login" => "sessions#new", :as => :login
match "signup" => "users#new", :as => :signup
虽然从我的有限测试来看:as => :something
似乎多余了?!?
答案 0 :(得分:2)
这似乎是多余的,但不是......当你的路线名称与你想给的名字不同时。
默认情况下,ActionDispatcher会执行很多操作。您应该尝试在控制台中触发rake routes
来测试此行为。
另一个例子是快捷方式:
match "account/profile"
# same as
match "account/profile", :to => "account#profile"
将创建命名路线:account_profile