tôi đã tự hỏi làm thế nào tôi có thể định nghĩa một lớp khả năng và phục vụ mà lớp khả năng tùy thuộc vào người sử dụng đã đăng nhập.Rails Can Can Khả Lớp Đối với nhiều lập mưu Models
Tôi đang sử dụng Active Admin, Can Can và lập mưu và tôi đã tạo thành công mô hình User và AdminUser.
Tôi có điều này trong ability.rb tôi
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if (user)
can :manage, Item
end
end
end
Bây giờ tôi đã sử dụng lối vào wiki này để xác định rằng chúng ta thực sự có thể định nghĩa một tập tin khả năng tùy chỉnh và sử dụng rằng thay vì ability.rb:
https://github.com/ryanb/cancan/wiki/changing-defaults
Nhưng những gì tôi muốn làm là, có thể sử dụng ability.rb nếu một "người dùng không phải quản trị" được đăng nhập và một tùy chỉnh abilty nếu một quản trị người dùng được đăng nhập.
Câu hỏi phụ: Có thể làm như vậy mà tôi không cần tùy chỉnh và tôi có thể đặt quyền trong một tệp khả năng.rb không?
Ah, bạn nói đúng. Tôi không nhận thấy rằng bạn đã sử dụng một lớp riêng biệt cho Người dùng và Người dùng quản trị viên. Bạn sẽ có thể thay đổi lớp được sử dụng bởi Quản trị viên hoạt động, nhưng không phải là người dùng của hệ thống đó, tôi không chắc chắn chính xác vị trí đó. Có lẽ nên kiểm tra initializers của bạn mặc dù. – jdl