ich in Rails 5. eine sehr einfache Genehmigung auf meiner Property
Klasse setzen bin versucht, habe ich den can :read
Zustand ability.rb
hinzugefügt und verwenden load_and_authorize_resource
in meinem Controller und ich kann es nicht einmal erhalten um die Beute zu treffen, geschweige denn, die Aktion :show
zu autorisieren. Fehle ich etwas Offensichtliches?CanCanCan: Leseblock nicht funktioniert
# ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
can :read, Property do |property|
binding.pry
PropertyUser.find_by(property_id: property.id, user_id: user.id)
end
end
end
# properties_controller.rb
class PropertiesController < ApplicationController
before_action :set_property, only: [:show, :edit, :update]
load_and_authorize_resource
skip_authorize_resource :only => [:new, :create]
def show
respond_to do |format|
format.html
format.js
end
end
private
def set_property
@property = Property.find(params[:id])
end
end
Danke.
AFAIK, es versucht, die Controller-Aktion Namen zu autorisieren, daher würden Sie nicht zu genehmigen versuchen: lesen, aber: show, vielleicht ist es das, was los ist auf. – jfornoff
Hey danke für die Antwort, ich habe es tatsächlich schon versucht und es hat das Problem nicht gelöst –
Es gibt ein paar mehr Dinge, ich denke, du kannst 'set_property' loswerden, Cancancan sollte das für dich tun, egal wie. – jfornoff