【问题标题】:Trying to get the current user in active admin试图在活动管理员中获取当前用户
【发布时间】:2014-05-13 14:07:47
【问题描述】:

我正在尝试让当前用户进入一个名为 Type 的模型的活动管理员。

这是我在project/app/admin/type.rb的文件的内容:

ActiveAdmin.register Type do    
  puts 'starting'
  puts proc {current_admin_user.id}
  puts 'finished'
  permit_params :name
end

我得到以下输出:

starting
#<Proc:0x007f87e54f3c78@
finished

有人知道我做错了什么吗?

【问题讨论】:

  • 你想在哪里显示你的current_admin_user.id?在索引页上?
  • 我实际上想用它做一些逻辑,但现在我只是想找到它,所以在这个例子中我只是将它记录到网络砖控制台。
  • 我不确定您希望看到什么。该代码只会在加载环境时运行(在服务器启动时)。
  • 另外,如果“类型”是您模型的实际名称,我会避免使用该名称。它是 rails 中单表继承中的一个特殊名称,如果此模型曾经处于 has_many 关系中,则当 has_many 方尝试引用其“类型”时,这可能会导致问题。

标签: ruby-on-rails activeadmin


【解决方案1】:

它实际上在表单、索引或视图块中工作。

例如,在您的表单块中,您可以这样做:

form do |f|
    f.inputs do
        if current_admin_user.id == 1
            f.input :title
        else
           # do something else ...
        end
    end
end

【讨论】:

  • 您好,谢谢,但我需要在我的资源而不是控制器中访问 c​​urrent_admin_user 方法,以便我可以用它做一些逻辑。
【解决方案2】:

我无法访问用户 ID,所以我创建了一个带有角色的迁移,然后使用了 current_admin_user.role?这工作得很好,真的是我应该从一开始就这样做:) 而不是试图找到用户的 id。

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    相关资源
    最近更新 更多