特定资源路由操作的别名("/ sign_in"而不是"/ sessions/new")

cha*_*doh 3 routing alias ruby-on-rails-3

我在Rails 3中设置了没有任何宝石的restful身份验证和用户管理.

但是,我认为需要转到"/ sessions/new"而不是"/ sign_in"是愚蠢的.

我知道你可以为整个资源添加别名,所以我的用户可以使用"/ squirrels"和朋友来代替"/ sessions"和朋友,但这不是我想要在这里完成的.我想别名一个具体的行动.

我知道这一种与实现

resources :sessions, :path_names => { :new => "sign_in" }
Run Code Online (Sandbox Code Playgroud)

但随后路由最终为"/ sessions/sign_in" - 我不希望控制器名称完全存在​​于此操作中.我希望我可以用这个来指定

resources :sessions, :path_names => { :new => "/sign_in" }
Run Code Online (Sandbox Code Playgroud)

其中"/"告诉rails它是一个完整的路径名.但这与第一个代码片段具有相同的效果.

我的最后一次尝试只是使用肤浅的

match "sign_in" => "sessions#new"
Run Code Online (Sandbox Code Playgroud)

这允许有人在他们的URL栏中手动输入"/ sign_in",但是new_session_(path|url)在更加笨拙的"/ sessions/sign_in"中仍与土地用户进行链接.

Pre*_*ids 5

match "sign_in" => "sessions#new", :as => :new_session
Run Code Online (Sandbox Code Playgroud)