Quando você usa a autorização declarativa para filtrar com base em atributos como:
has_permission_on :gyms, to: [:dashboard] do
if_attribute user_id: is { user.id }
end
Você DEVE se certificar de definir attribute_check em ações personalizadas como:
filter_access_to :dashboard, :attribute_check: true
Conforme especificado nos documentos 🙂
Algo assim em um controlador de base funcionará para todas as rotas principais, mas às vezes você precisa verificar os atributos em ações personalizadas.
filter_access_to :all
filter_access_to :edit, :update, :show, :attribute_check => true
Portanto, lembre-se de que as verificações de atributo não acontecerão, mesmo se definidas, se attribute_check não for verdadeiro.