Я использую cancan и пытаюсь заставить его ограничить оборудование, показанное для конкретной компании.
У меня есть компания со многими пользователями, которая должна видеть только оборудование, принадлежащее этой компании.
Я думал, что cancan может сделать это на основании этого:
Учетная запись Rails 3 со многими пользователями, ограничение доступа к данным
Итак, я попробовал этот код:
can :manage, Equipment do |equipment|
user.company == equipment.company
end
В контроллере оборудования у меня есть @equipment = Equipment.all
, который, как я полагал, просто вытянет оборудование для этой компании пользователей, но, конечно, он вытянет их всех. Есть ли простой способ сделать это, или мне нужно сделать @equipment = Equipment.find_by_company_id(current_user.company)
в любое время, когда я хочу взять только оборудование этой компании. Чтобы сделать это еще хуже, я хочу в конечном итоге разбить его по группам и отделам, но не стал бы заставлять себя делать более крупные запросы поиска. Я открыт ко всему, плагинам, предложениям, ко всему, что будет самым быстрым способом исправить это.
Я мог бы добавить больше кода к этому вопросу, но я не знаю, что добавление всего этого действительно помогло бы этому вопросу.
Большое спасибо
Toby