Railsアプリケーションで認証とアクセス許可を管理するためにdeviseとcancan gemを使用しています。アプリケーションは、ライブラリ管理に関するものです。次のように、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 ページに従って、can? ユーザーモデル内で利用可能なメソッド。これにより、使用できます
current_user.can?(:manage, Book)
しかし、current_user.can?(:lend)
結果は になりwrong number of arguments(1 for 2+)
ます。ここで少し知性が欠けているような気がします。私はグーグルと関連記事をここで試しましたが、役に立ちませんでした。助けてください。