Tôi đang thay đổi một số hành động CanCan tùy chỉnh của mình trong lớp Khả năng để sử dụng các khối thay vì chỉ là băm nhưng giờ đây chúng đã thực sự hạn chế quyền truy cập. Điều kỳ lạ là các hành động dựng sẵn như: quản lý và: tạo, vv dường như vẫn hoạt động tốt với các khối.Hành động tùy chỉnh của CanCan không hoạt động với các khối
Đây là một ví dụ:
OLD
# this one works
can :share, Project, :user_id => user.id
MỚI
# this one doesn't work
can :share, Project do |project|
project.users.exists?(user)
end
Bất cứ ai chạy vào vấn đề này trước đây chưa?
Hãy tin tôi, tôi không muốn sử dụng các khối nhưng dường như là cách duy nhất để làm điều đó trong trường hợp của tôi. Tôi đã chuyển từ mối quan hệ một-nhiều giữa các dự án và người dùng thành nhiều người, vì vậy bây giờ tôi cần kiểm tra tất cả người dùng trên một dự án, không chỉ một. – Matt
Hmm, hãy thử sử dụng trình gỡ rối và xem điều gì xảy ra ở CanCan khi kiểm tra khả năng. Hoặc mở và chỉnh sửa các tệp của đá quý cancan trên hệ thống tệp của bạn và xem những gì được truyền bằng cách bán các biến. Đây là cách tôi ở trên con đường khi tôi không thể nghĩ ra bất cứ điều gì khác. Tất nhiên sẽ hoàn nguyên các tệp;) – Mirko