Rails:如何从资源创建自定义路由

时间:2012-01-07 20:28:32

标签: ruby-on-rails routes

我设置了一个Enki博客,然后在www.localhost:3000/admin登录。

我猜这个管理网址是由路由中的代码决定的,但出于安全原因,我想进行登录,例如,

www.localhost:3000 / ilovejesus

Enki::Application.routes.draw do
  namespace 'admin' do
    resource :session

根据rake路线告诉我的情况,我猜测是需要改变的:controller => Admin/Dashboard, :action => 'show'的admin_root。

所以任何人都可以告诉我如何改变它,例如localhost:3000 / iloveronpaul

Rake Routes:

admin_session POST   /admin/session(.:format)                        {:action=>"create", :controller=>"admin/sessions"}
   new_admin_session GET    /admin/session/new(.:format)                    {:action=>"new", :controller=>"admin/sessions"}
  edit_admin_session GET    /admin/session/edit(.:format)                   {:action=>"edit", :controller=>"admin/sessions"}
                     GET    /admin/session(.:format)                        {:action=>"show", :controller=>"admin/sessions"}
                     PUT    /admin/session(.:format)                        {:action=>"update", :controller=>"admin/sessions"}
                     DELETE /admin/session(.:format)                        {:action=>"destroy", :controller=>"admin/sessions"}
 preview_admin_posts POST   /admin/posts/preview(.:format)                  {:action=>"preview", :controller=>"admin/posts"}
         admin_posts GET    /admin/posts(.:format)                          {:action=>"index", :controller=>"admin/posts"}
                     POST   /admin/posts(.:format)                          {:action=>"create", :controller=>"admin/posts"}
      new_admin_post GET    /admin/posts/new(.:format)                      {:action=>"new", :controller=>"admin/posts"}
     edit_admin_post GET    /admin/posts/:id/edit(.:format)                 {:action=>"edit", :controller=>"admin/posts"}
          admin_post GET    /admin/posts/:id(.:format)                      {:action=>"show", :controller=>"admin/posts"}
                     PUT    /admin/posts/:id(.:format)                      {:action=>"update", :controller=>"admin/posts"}
                     DELETE /admin/posts/:id(.:format)                      {:action=>"destroy", :controller=>"admin/posts"}
 preview_admin_pages POST   /admin/pages/preview(.:format)                  {:action=>"preview", :controller=>"admin/pages"}
         admin_pages GET    /admin/pages(.:format)                          {:action=>"index", :controller=>"admin/pages"}
                     POST   /admin/pages(.:format)                          {:action=>"create", :controller=>"admin/pages"}
      new_admin_page GET    /admin/pages/new(.:format)                      {:action=>"new", :controller=>"admin/pages"}
     edit_admin_page GET    /admin/pages/:id/edit(.:format)                 {:action=>"edit", :controller=>"admin/pages"}
          admin_page GET    /admin/pages/:id(.:format)                      {:action=>"show", :controller=>"admin/pages"}
                     PUT    /admin/pages/:id(.:format)                      {:action=>"update", :controller=>"admin/pages"}
                     DELETE /admin/pages/:id(.:format)                      {:action=>"destroy", :controller=>"admin/pages"}
      admin_comments GET    /admin/comments(.:format)                       {:action=>"index", :controller=>"admin/comments"}
                     POST   /admin/comments(.:format)                       {:action=>"create", :controller=>"admin/comments"}
   new_admin_comment GET    /admin/comments/new(.:format)                   {:action=>"new", :controller=>"admin/comments"}
  edit_admin_comment GET    /admin/comments/:id/edit(.:format)              {:action=>"edit", :controller=>"admin/comments"}
       admin_comment GET    /admin/comments/:id(.:format)                   {:action=>"show", :controller=>"admin/comments"}
                     PUT    /admin/comments/:id(.:format)                   {:action=>"update", :controller=>"admin/comments"}
                     DELETE /admin/comments/:id(.:format)                   {:action=>"destroy", :controller=>"admin/comments"}
undo_admin_undo_item POST   /admin/undo_items/:id/undo(.:format)            {:action=>"undo", :controller=>"admin/undo_items"}
    admin_undo_items GET    /admin/undo_items(.:format)                     {:action=>"index", :controller=>"admin/undo_items"}
                     POST   /admin/undo_items(.:format)                     {:action=>"create", :controller=>"admin/undo_items"}
 new_admin_undo_item GET    /admin/undo_items/new(.:format)                 {:action=>"new", :controller=>"admin/undo_items"}
edit_admin_undo_item GET    /admin/undo_items/:id/edit(.:format)            {:action=>"edit", :controller=>"admin/undo_items"}
     admin_undo_item GET    /admin/undo_items/:id(.:format)                 {:action=>"show", :controller=>"admin/undo_items"}
                     PUT    /admin/undo_items/:id(.:format)                 {:action=>"update", :controller=>"admin/undo_items"}
                     DELETE /admin/undo_items/:id(.:format)                 {:action=>"destroy", :controller=>"admin/undo_items"}
        admin_health        /admin/health(/:action)(.:format)               {:action=>"index", :controller=>"admin/health"}
          admin_root        /admin(.:format)                                {:controller=>"admin/dashboard", :action=>"show"}
            archives GET    /archives(.:format)                             {:action=>"index", :controller=>"archives"}
                page GET    /pages/:id(.:format)                            {:action=>"show", :controller=>"pages"}
                     GET    /:year/:month/:day/:slug/comments(.:format)     {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"comments", :action=>"index"}
                     POST   /:year/:month/:day/:slug/comments(.:format)     {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"comments", :action=>"create"}
                     GET    /:year/:month/:day/:slug/comments/new(.:format) {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"comments", :action=>"new"}
                     GET    /:year/:month/:day/:slug(.:format)              {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"posts", :action=>"show"}
     formatted_posts GET    /posts.:format                                  {:controller=>"posts", :action=>"index"}
               posts GET    /(:tag)(.:format)                               {:controller=>"posts", :action=>"index"}
                root        /(.:format)                                     {:controller=>"posts", :action=>"index"}

1 个答案:

答案 0 :(得分:1)

namespace

中添加:path选项
Enki::Application.routes.draw do
  scope :module => 'admin' do
    resource :session, :path_names => { :new => "liverandonions", 
                                        :show => "ilovejesus,
                                        :edit => "iloveronpaul" }

我不确定,但path_names选项可能必须包含在数组中。

    resource :session, :path_names => { [:new => "liverandonions", 
                                        :show => "ilovejesus,
                                        :edit => "iloveronpaul"] }

让我知道哪一个有用。