我正在使用 devise 和 cancan gem 来管理我的 rails 应用程序中的身份验证和权限。该应用程序是关于图书馆管理的。我在ability.rb 中定义了方法,例如:
def lend
can :manage, Book
can :manage, Transactions
end
然后在ability.rb中,我将权限分配为
if user.role? == "librarian"
can lend
end
在视图中,我可以使用can?(:manage, Book)
或can?(manage, Transaction)
为具有“图书管理员”角色的用户。
但是,我希望能够使用current_user.can?(:lend)
. 我按照这个github页面制作可以吗?方法在用户模型中可用。这允许我使用
current_user.can?(:manage, Book)
但是,current_user.can?(:lend)
结果为wrong number of arguments(1 for 2+)
. 我有一种感觉,我在这里缺少一点智慧。我在这里尝试了谷歌和相关帖子,但无济于事。请帮忙。