Я настроил Paper_Trail и CanCan в приложении Rails. Rails_Admin хорошо показывает мне таблицы versions
и version_associations
.
В другом приложении (которое на самом деле является ответвлением предыдущего) я бы хотел, чтобы Rails_Admin тоже показывал эти таблицы, но это не так.
В обоих приложениях я вхожу в систему как пользователь с ролью admin
, и возможность для обоих приложений выглядит так:
class Ability
include CanCan::Ability
def initialize(current_user)
alias_action :create, :read, :update, :destroy, to: :crud
can :read, User
if current_user.nil?
can :create, User
else
can :update, User do |user|
user == current_user # Update himself
end
can :crud, Boilerplate # This is the only line that the 2nd app adds to the ability
if current_user.has_role?(:admin)
can :access, :rails_admin
can :dashboard
can :crud, :all
end
cannot :destroy, User do |user|
user == current_user
end
end
end
end
Кроме строки can :crud, Boilerplate
все то же самое. Миграции также одинаковы, поэтому у меня есть необходимые таблицы и т.д.
Я создал дамп current_ability
каждого приложения: diff на diffchecker.com. Что я вижу, так это то, что способность пользователя, который видит материал Paper_Clip в Rails_Admin, имеет много @expanded_actions
, а другой - нет. Откуда это могло взяться? Оба пользователя определенно имеют роль :admin
.