Rails名称空间和路由

时间:2012-05-21 14:00:01

标签: ruby-on-rails ruby ruby-on-rails-3 routing routes

我需要帮助。我想管理我的rails应用程序。我尝试使用命名空间设置路由,但命名空间需要资源,资源必须在get请求中具有id。

有人知道如何正确设置吗?我用的是windows机器。感谢。

我的路线:

Web::Application.routes.draw do

  namespace :admin do
    resources :access # GET http://localhost/admin/access/login/login - stupid??
  end

  match ':controller(/:action(/:id))(.:format)'
end

3 个答案:

答案 0 :(得分:1)

尝试使用resource :access代替resources :access

  namespace :admin do
    resource :access
  end

它将生成路线:

         admin_access POST   /admin/access(.:format)                                admin/access#create
          new_admin_access GET    /admin/access/new(.:format)                            admin/access#new
         edit_admin_access GET    /admin/access/edit(.:format)                           admin/access#edit
                              GET    /admin/access(.:format)                                admin/access#show
                              PUT    /admin/access(.:format)                                admin/access#update
                              DELETE /admin/access(.:format)                                admin/access#destroy

答案 1 :(得分:0)

  namespace :admin do
    get "login" => "access#login", :as => :login # GET http://localhost/admin/login - admin_login_path 
  end

答案 2 :(得分:0)

如果你没有一套 restful resources ,但只想要一套不同的控制器方法,这里有一种方法可以做到:

scope '/admin' do
  get '' => "admin#index", :as => 'admin_home'
  get '/users' => 'admin#users', :as => 'admin_users'
  get '/other_admin_task' => 'admin#other_admin_task', :as => 'other_admin_task'
end