我在Rails应用程序中配置了Paper_Trail和CanCan。 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 on diffchecker.com。我可以看到,在Rails_Admin中看到Paper_Clip内容的用户有很多@expanded_actions
,而另一个没有。{这可能来自哪里?两个用户肯定都有:admin
角色。
答案 0 :(得分:0)
问题是我没有使用最新的paper_trail版本(版本import static com.querydsl.core.alias.Alias.*
Foo foo = alias(Foo.class, "foo");
assertThat($(foo.getBar().getBaz()).getMetaData().getName()).isEqualTo("foo.bar.baz");
)。