current_userの役割をチェックして、権限のないユーザーによる編集から一部の属性を保護するヘルパーを作成しました。
検証は、コンソールを使用しているとき以外は正常に機能します。明らかにユーザーはいませんが、それでも検証を試みており、次のようになります。
NoMethodError: undefined method `has_role?' for nil:NilClass
この検証をバイパスするにはどうすればよいですか、または私が行っていることを達成するためのより良い方法はありますか?
ロケーションモデル:
validate :check_archived_status, :on => :update
def check_archived_status
unless UserHelper.staff
if self.archived == false
if stuff == otherstuff
do some other stuff
end
end
end
end
UserHelper:
def self.staff
staff = User.current_user.has_role?('Super', 'Admin', 'Tech')
end