Tôi muốn sử dụng CanCan để xử lý các quyền của mình. Trang web của tôi có nhiều cấp độ quyền khác nhau và hầu hết trong số đó là nhận thức ngữ cảnh. Ví dụ: Dưới đây là các mối quan hệ trong 3 mô hình chính của tôi:Ủy quyền nhận thức ngữ cảnh bằng cách sử dụng CanCan
class User < ActiveRecord::Base
has_many :league_relations
has_many :leagues, :through => :league_relations
end
class League < ActiveRecord::Base
has_many :league_relations
has_many :users, :through => :league_relations
end
class LeagueRelation < ActiveRecord::Base
belongs_to :user
belongs_to :league
end
Lưu ý, LeagueRelations là tài nguyên lồng nhau của Giải đấu. Những gì tôi muốn làm là cho phép người dùng sửa đổi giải đấu và đánh giá ủy quyền của từng người dùng dựa trên dữ liệu được lưu trữ trong league_relation. Sau đó tôi muốn người dùng sửa đổi quan hệ giải đấu, chỉ dựa trên dữ liệu được lưu trữ trong mô hình người dùng.
Để gọn gàng: về cơ bản tôi muốn LeagueRelations được sử dụng để cho phép các hành động của Liên đoàn và Người dùng được sử dụng để ủy quyền các hành động của LeagueRelations. tức là league_relation.owner = true để xóa một League, nhưng user.owner? phải đúng để xóa một LeagueRelation. Làm thế nào tôi có thể ủy quyền dựa trên các thuộc tính của league_relation khi bên trong bộ điều khiển giải đấu, và cho phép các hành động khác trong các bộ điều khiển khác trên các mô hình khác. Xin vui lòng để lại một bình luận nếu bạn cần làm rõ thêm.
Cảm ơn.