Я использую Cancan, Devise, Rails 3 для своего приложения для заказа.
Каждый пользователь имеет много компаний по соглашениям.У каждой компании также есть много пользователей по соглашениям.
В моей модели способностей у меня есть следующее:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :super
can :manage, :all
elsif user.role? :admin
can :manage, [User, Company, Order]
elsif user.role? :tech
can :manage, [User, Company, Tech]
elsif user.role? :customer_admin
can [:read, :update], User, :id => user.id
can [:read, :update], Company, :id => user.id
can [:read ], Order, :id => user.id
end
end
end
Когда пользователь customer_admin входит в систему, я пытался показать им толькокомпании, с которыми они связаны.С точки зрения компании, я вижу список пользователей просто отлично.
В контроллере моих компаний (индекс) я пытался сделать это:
@usercompanies = Company.where(['user_id = ?', current_user.id ])
Однако в этом списке перечисленынеправильная компания?!
Уверен, что это глупая ошибка новичка, но я был бы признателен за вашу помощь.Если вам нужно что-нибудь еще, дайте мне знать.