CanCanCan новый / создать с Hash в Rails 5 - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть приложение Rails 5, и я использую CanCanCan.

Мои модели выглядят так:

User belongs to Platform
Platform has many Agencies
Agency has many Companies

Чтобы предоставить моему пользователю доступ ко всем компаниям, связанным с ним через цепочкуОтношения это просто:

can :manage, Company, agency: { platform_id: user.platform_id }

Работает хорошо.Но когда пользователь пытается создать новую компанию, где в форме он выбирает одно из своих агентств, к которому он подключается, он получает ошибку отказа в разрешении.

Как я могу это исправить?

Я знаю, что это как-то связано с параграфом «новые и создающие действия» в этой вики: https://github.com/CanCanCommunity/cancancan/wiki/authorizing-controller-actions

Но я пока не смог найти решение.

ЕдинственноеЯ могу думать о том, как разделить его на две способности.Один для чтения и редактирования, а другой:

can :create, Company

Но при этом не будет проверено, является ли выбранное агентство частью пользовательской платформы.

...