2009-04-24 33 views
5

Thiết kế ứng dụng web với phần quản trị và phần công khai. Nó cảm thấy như có một bộ điều khiển phải đối mặt công khai chỉ cho "chỉ mục" và "hiển thị" là một chút dư thừa. Tất cả các đề nghị tôi đã đọc đề xuất một không gian tên cho admin, đó là tốt. Tôi chỉ tự hỏi nếu tôi cần phải có một bộ điều khiển với một hành động bổ sung, nói "list_public" hoặc một cái gì đó như thế.Rails - Hai bộ điều khiển hoặc thêm hành động?

Tôi mới với Rails, vì vậy có lẽ tôi chỉ lo ngại về không có gì. Tôi không thích ý tưởng có tất cả các bộ điều khiển, khung nhìn, người trợ giúp có cùng tên nằm rải rác trên tất cả các thư mục dự án của tôi.

Bất kỳ ai có bất kỳ thông tin chi tiết nào về điều này? Cảm ơn trước.

Trả lời

7

Tôi muốn nói rằng cả hai bộ điều khiển (một công khai và một quản trị viên) là giải pháp tốt nhất.

Bây giờ, những gì bạn có thể làm là cả hai trình điều khiển đều gọi cùng một phương thức thực hiện các hành động liên quan trong các hành động.

class MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    end 
end 

class Admin::MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    # Admin only stuff goes here 
    end 
end 
+0

Cảm ơn, Matt. Điều này có nghĩa là tôi chỉ cần một số xác minh rằng nó không phải là "quá liều". – TMB

6

Như Matt nói, nhưng bạn cũng có thể làm điều này:

class MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    end 
end 

class Admin::MyController < MyController 
    def show 
    super 
    # Admin only stuff goes here 
    end 
end 

Điều này có nghĩa rằng bạn chỉ có thể tập trung vào các trường hợp chuyên biệt hơn cho quản trị :: MyController chứ không phải lặp lại mã.

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