我正在尝试实现类似的东西:
RailsAdmin.config do |config|
config.model Team do
list do
field :name
field :created_at
field :revenue do
visible do
current_user.roles.include?(:accounting) # metacode
end
end
end
end
end
我知道自述文件中说该示例是理论上的,但我不断发现在该 block 中找不到 current_user 。我正在向 CanCan 授权:
RailsAdmin.authorize_with :cancan
位于config/initializers中rails_admin.rb的顶部
谁能告诉我如何让 current_user 在可见 block 中可用?如果用户是管理员,我只想在“列表” View 中显示某些字段。
最佳答案
由于 current_user 作为助手包含在 View 中,因此您可以通过绑定(bind)哈希获取它:
visible do
bindings[:view].current_user.has_role? :admin # This works for Devise
end
我从另一个问题中得到了这个想法:How to set the user to current_user when creating a new model using rails_admin
有关 Rails_admin 绑定(bind)的更多信息,请参阅其 wiki:https://github.com/sferik/rails_admin/wiki/Railsadmin-DSL
希望有帮助。
关于ruby-on-rails - 如何在 config/initializers/rails_admin.rb 中的 "current_user" block 中获取 "visible do",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674065/