Ich verwende gem 'devise'
und 'cancancan'
für die Definition von Rollen für Benutzer. Problem ist, wenn ich Schienen-Server ausgeführt sein sagt: undefined method 'admin?' for nil:NilClass
Ruby on Rail - undefinierte Methode `admin? ' für Null: NilClass
ability.rb:
class Ability
include CanCan::Ability
def initialize(user)
if user.admin?
can :manage, :all
else
can :read, :all
end
end
end
User-Modell:
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :projects
def admin?
self.admin
end
end
Was könnte das Problem sein?
Sie keinen aktuellen Benutzer haben so versagt diese Sie eine Schutzklausel könnte hinzufügen oder in der gleichen Weise wie die [Fähigkeiten Docs] implementieren (https://github.com/CanCanCommunity/cancancan/wiki/ defining-facilities) – engineersmnky