gpt4 book ai didi

ruby-on-rails - 如何在 config/initializers/rails_admin.rb 中的 "current_user" block 中获取 "visible do"

转载 作者:行者123 更新时间:2023-12-03 01:39:28 25 4
gpt4 key购买 nike

我正在尝试实现类似的东西:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com