Я использую Devise для аутентификации & CanCanCan/Rolify для авторизации.Rails - CanCanCan, Rolify, Define - Определяющие способности для связанной модели
Я хочу ограничить запись каждой модели пользователю, который создал его, через различные ассоциации.
I.e./sales/1 должен быть доступен только пользователю, принадлежащему к организации, имеющей продажу.
User
has_many :organisations
Organisation
belongs_to :user
has_many :sales
Sale
belongs_to :organisation
has_many :payments
Payment
belongs_to :sale
Ограничение Организации Пользователя, который принадлежит ему прямо вперед:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.has_role? :admin
can :manage, :all
elsif user.has_role? :standard
can [:create, :read, :update, :destroy], Organisation, :user_id => user.id
end
end
end
Как я могу достичь того же для соответствующей продажи, а затем соответствующий взнос?
can [:manage], Sale, ?
can [:manage], Payment, ?
Примечание: Rails 5.0.0.1, Ruby 2.3.1
Работает отлично - спасибо –