2010-03-15 29 views
5

Tôi có một bộ điều khiển quản trị nằm ở controllers/admin/admin_controller.rb Tôi cũng có một bộ điều khiển trang nằm ở controllers/admin/pages_controller.rb pages_controller.rb thừa hưởng từ admin_controller.rb trong routes.rb, tôi có một namespace quản trị như vậy:quản lý giao diện trong Rails

map.namespace :admin do |admin| 
    admin.resources :pages 
end 
  • tôi muốn các quản trị viên có chức năng CRUD cơ bản trong pages_controller.rb (tôi biết làm thế nào để làm điều đó)
  • tôi muốn indexshow phương pháp có sẵn cho người dùng front-end
  • Tôi muốn các hành động hiển thị và lập chỉ mục sử dụng các chế độ xem riêng biệt, nhưng cùng một mã.

Câu hỏi:

  • Tôi có nên tạo một pages_controller mới cho front-end, hoặc chia sẻ những phương pháp indexshow?
  • Nếu tỷ, thế nào tôi sẽ hiển thị giao diện riêng tuỳ thuộc vào việc các url là /admin/pages hoặc /pages
  • Nếu tỷ, tôi nên đặt pages_controller trong /controllers/admin (nơi hiện nay) hoặc chỉ trong /controllers?

Cảm ơn bạn rất nhiều.

Trả lời

3

Tôi sẽ giữ riêng biệt. Mặc dù logic có thể giống nhau bây giờ chúng có hiệu lực hai thứ khác nhau. Việc giữ riêng biệt chúng sẽ giúp bạn bảo mật và cho phép bạn thực hiện các thay đổi sau này nếu cần, ví dụ: bạn có thể quyết định khi tải trang truy vấn quản trị cũng như: bao gồm điều gì khác v.v. Trong các tuyến đường bạn có thể thêm:

map.resources :pages, :only => [:index, :show] 

Ý chí của bạn là lượt xem cho mỗi cặp hành động/bộ điều khiển, ví dụ: một lượt xem/quản trị/trang và một trang trong/view/pages. Nếu hai mã này trùng lặp mã, hãy trích xuất nó thành partials và hiển thị chúng từ cả hai.

+0

cảm ơn bạn rất nhiều! –

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