Я использую devise для аутентификации и ищу инфраструктуру авторизации, которая позволяет мне объявлять разрешения на редактирование для определенных атрибутов модели.
У меня в приложении три разные роли: учитель, родитель и ученик. Студенческая модель принадлежит семье. Когда Учитель создает ученика, он может установить семейную ассоциацию. Однако, когда родитель посещает страницу редактирования для ученика, он не должен иметь возможности изменить эту связь, а только просматривать ее.
В представлении легко изменить форму в зависимости от того, кто ее просматривает (например, отключить или не отключать ввод выбора семейства), но специально созданная форма может обойти это. Мне нужно что-то, что вызовет какое-то исключение авторизации, когда кто-то пытается изменить атрибут, который ему не разрешено изменять.
В настоящее время я смотрю на Declarative_authorization , но, похоже, он недостаточно детализирован, чтобы ограничивать изменения атрибутов, только модель в целом.