2013-05-08 49 views
6

Tôi đang tạo một blog với Rails và điều đầu tiên tôi đã làm là khu vực quản trị (bây giờ là điều duy nhất tôi có trong ứng dụng). Tôi đã sử dụng Bootstrap để nhanh chóng thiết kế tất cả các trang và Devise để xác thực.Tạo khu vực quản trị trong ứng dụng Rails

Đối với tất cả kiểu máy, chế độ xem và bộ điều khiển tôi đã sử dụng scaffolding và tôi đã tạo cả hai mô hình AdminPost.

Vấn đề là bây giờ tôi phải tạo blog REAL và truy cập bảng điều khiển quản trị bằng cách sử dụng tuyến đường /admin. Ví dụ: để tạo bài đăng mới, tôi nên truy cập http:/mysite/admin/posts/new.

Một vấn đề khác là tôi sẽ có một thiết kế hoàn toàn khác trong trang blog công khai (không phải Bootstrap) và dĩ nhiên tôi sẽ có các bộ điều khiển, chế độ xem và tuyến khác nhau.

Vì vậy, bạn có thể làm gì?

Trả lời

15

Tôi khuyên bạn nên xóa mô hình Admin như trong trường hợp của bạn có vẻ như không gian tên hơn mô hình. Tôi thay vào đó sẽ tạo ra một không gian tên :admin trong tập tin routes.rb của bạn như:

namespace :admin do 
    resources :posts 
end 

Điều này sẽ khiến tất cả các tuyến bên trong của khối này để được bắt đầu w/admin. Vì vậy, URL để chỉnh sửa bài đăng ở phía quản trị viên sẽ là admin/posts/:id/edit.

Tiếp theo, tôi khuyên bạn nên tạo AdminController rằng tất cả các bộ điều khiển quản trị của bạn sẽ kế thừa từ đó. Bằng cách này bạn có thể chỉ định bố cục mới. Sau đó, bạn có thể tạo một Admin::PostsController tại app/controllers/admin/posts_controller.rb

app/controllers/admin_controller.rb

class AdminController < ApplicationController 
    layout 'admin' 
end 

app/controllers/admin/posts_controller.rb

class Admin::PostsController < AdminController 
    def index 
    # admin/posts 
    end 
end 

app/views /admin/posts/index.html.erb

Hello from the admin/posts view! 
0

Tôi cho rằng trang blog nên được công khai, điều đó có nghĩa là không cần xác thực để xem nó. Đối với phần còn lại bạn đã sử dụng để bảo vệ khu vực đó.

Đối với mẫu khác khá dễ, bạn có thể tạo 2 bố cục và đặt bố cục mong muốn trong bộ điều khiển.

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