2012-01-27 8 views
7

Tôi cảm thấy như thế này có thể là một câu hỏi ngớ ngẩn, nhưng đã muộn và đầu tôi đang tan chảy một chút .. Vì vậy, tôi đánh giá cao sự trợ giúp.Điều khiển bộ điều khiển đến không gian tên: admin đến/admin

Tôi đang cố gắng ánh xạ url http://localhost:3000/admin tới bộ điều khiển trang tổng quan nhưng tôi không sử dụng được. Có lẽ đây là thậm chí không thể thực hiện hoặc ý tưởng hoàn toàn sai nhưng dù sao các tuyến đường của tôi trông như thế này và có

namespace :admin do 
    resources :dashboard, { :only => [:index], :path => '' } 
    ... 
end 

và dashboard_controller.rb đơn giản của tôi

class Admin::DashboardController < ApplicationController 
    before_filter :authenticate_user! 
    filter_access_to :all 

    def index 
    @schools = School.all 
    end 
end 

và quan điểm của tôi nằm ở views/quản trị /dashboard/index.html.erb

nhờ cho bất kỳ đầu vào

Trả lời

9

Nếu tất cả các bạn đang cố gắng làm là tuyến đường /admin để mà điều khiển bảng điều khiển, sau đó bạn trên làm phức tạp nó bằng cách đặt tên nó như thế.

namespacing với một nguồn tài nguyên lồng nhau như thế có nghĩa là nó sẽ là /admin/dashboards cho :index hành động thay vì có một /admin tuyến đường sạch (và bạn có thể xác minh rằng bằng cách chạy rake routes tại dòng lệnh để có được một danh sách các tuyến đường của bạn) .

Lựa chọn 1: Bạn có nghĩa là để không gian tên nó như thế

# putting this matched route above the namespace will cause Rails to 
# match it first since routes higher up in the routes.rb file are matched first 
match :admin, :to => 'admin/dashboards#index' 
namespace :admin do 
    # put the rest of your namespaced resources here 
    ... 
end 

Phương án 2: Bạn không có nghĩa là để không gian tên nó như thế

Route:

match :admin, :to => 'dashboards#index' 

Bộ điều khiển:

# Remove the namespace from the controller 
class DashboardController < ApplicationController 
    ... 
end 

xem nên được chuyển về:

views/dashboards/index.html.erb 

Thông tin thêm: http://guides.rubyonrails.org/routing.html

+0

Thần ks bị cướp! Tùy chọn 1 đã sửa tôi. –

+1

Chỉ hoạt động để lập bản đồ đường dẫn/quản trị cụ thể cho chỉ mục hành động cụ thể trên bảng điều khiển. Họ cũng không lập bản đồ/admin /: action tới trang tổng quan #: action. – cilphex

0

Hãy thử điều này:

namespace :admin do 
    root to: 'users#index' # whatever. Just don't start with /admin 
    #resources :dashboards <= REMOVE THIS LINE ! 
end