У меня есть has_and_belongs_to_many связь между пользователем и клиентом. Таблица clients_users имеет индексы для Пользователя и Клиента. Мои модели:Разрешения CanCanCan для ассоциации has_and_belongs_to_many
class User < ActiveRecord::Base
rolify
has_and_belongs_to_many :clients
end
class Client < ActiveRecord::Base
resourcify
has_and_belongs_to_many :users
end
Мои контроллеры являются:
class Admin::ClientsController < ApplicationController
load_and_authorize_resource
end
class Admin::UsersController < ApplicationController
load_and_authorize_resource
end
мне нужно что-то вроде этого в моем ability.rb
user ||= User.new # guest user (not logged in)
can :read, :all
can :manage, Client, :clients_users => { :user_id => user.id }
Так что я мог управлять клиент только тогда, когда в таблице clients_users это запись с user_id и идентификатором этого клиента. Как мне заставить работать?
'can: manage, Client do | p | c.clients_users.user_id == user.id end', что-то вроде этого должно помочь – Sontya
Должно быть '| c |' вместо '| p |', но оно все равно не будет работать (больше при принятом ответе). Спасибо, в любом случае. – yazoou