2009-03-28 30 views
7

Tôi đang làm việc trên ứng dụng Rails đầu tiên của mình và muốn tạo một phần quản trị.Phần quản trị ứng dụng Rails

Tôi có muốn giữ các chế độ xem và bộ điều khiển hoàn toàn riêng biệt (có nghĩa là, trong các thư mục riêng biệt) cho phần quản trị và phần còn lại của trang web không?

Làm cách nào để sắp xếp chế độ xem/bộ điều khiển trong thư mục tùy chỉnh (làm cách nào để định cấu hình định tuyến)?

Trả lời

5

Bạn có thể cũng giữ ứng dụng và bộ điều khiển ở vị trí thông thường và sử dụng Bộ lọc đường ray để kiểm soát quyền truy cập, đó là những gì tôi nghĩ rằng bạn đang tìm kiếm ở đây.

Nếu bạn có AWDWR Book tiện dụng, lật để Chap11 công tác F Linh tinh quản trị

  • Về cơ bản xác định một phương pháp ủy quyền trong ứng dụng \ controllers \ application.rb, trong đó kiểm tra ủy quyền, chuyển hướng đến trang đăng nhập nếu chưa đăng nhập et.all
  • Đánh điều khiển bạn muốn hạn chế quyền truy cập vào với before_filter s

.

class AdminController < ApplicationController 
    before_filter :authorize 
    # ... the rest of the code 
end 

này sẽ chặn tất cả các cuộc gọi đến hành động quy định tại AdminController và buộc họ phải đi qua ủy quyền cho

+0

Có thể định tuyến phức tạp này không? Tôi cũng thích ý tưởng có các thư mục riêng biệt để giữ mọi thứ có trật tự hơn. – GeekJock

+0

Không phải là tất cả .. Vẻ đẹp là bạn không cần phải xác định (hoặc thậm chí gây rối với) các tuyến đường khác nhau. Tất cả mọi thứ đi qua một con đường duy nhất, ủy quyền before_filter đảm bảo rằng chỉ có yêu cầu được ủy quyền có được thông qua các hành động được bảo vệ. Đó là một cách tiếp cận 'khai báo' .. – Gishu

+2

Cách tiếp cận đó là ok, nhưng không phải lúc nào cũng thích hợp, đặc biệt là nếu bạn muốn có một CMS gần như như phần quản trị như trái ngược với một vài tài nguyên quản trị được rải rác thông qua ứng dụng của bạn. – nitecoder

8

Để tạo bộ điều khiển quản trị:

script/generate controller admin/articles 

Sau đó, trong tập tin routes.rb của bạn

map.resource :admin do |admin| 
    admin.resources :articles, :path_prefix => "admin", :name_prefix => "admin_", :controller => "admin/articles" 
end 

Bạn có thể sau đó truy cập vào url index cho việc này:

<%= link_to "Articles Admin", admin_articles_path %> 
5
map.namespace :admin do |admin| 
    admin.register :controller => 'main', :action => 'register' 
    admin.login, :controller => 'main', action => 'login' 
    # ... 
end 

Đây là cách bạn không gian tên sự vật, thêm video này vào những ý kiến ​​khác ở đây về những điều cho phép và bạn đang đi. Hãy xem plugin restful_authentication để thực hiện việc quản lý người dùng của bạn, nhanh hơn và dễ dàng hơn nhiều so với việc cuộn của riêng bạn.

Định tuyến trên giả định bộ điều khiển và chế độ xem của chúng nằm trong thư mục con được gọi là quản trị viên, mà tôi nghĩ là những gì bạn muốn.

Các vấn đề liên quan