【问题标题】:Require scope in activeadmin resource需要 activeadmin 资源中的范围
【发布时间】:2012-10-25 16:53:57
【问题描述】:

我正在使用 activeadmin,需要弄清楚如何要求范围仅显示与当前用户有关的记录。

我还有其他用户可以选择的范围,但可以说这些范围需要“预先确定”,以便在任何给定时间只有属于该用户的记录可用。

我希望这是有道理的。我对这一切都很陌生,所以我不确定从哪里开始。提前感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails activeadmin scopes


    【解决方案1】:

    您是否尝试使用 scope_to :current_user 进行范围界定?

    AA 有一些带有 docs 的示例。他们来了 http://activeadmin.info/docs/2-resource-customization.html#scoping_the_queries

    current_user 是获取当前登录用户的辅助方法(我认为 current_admin_user 是默认值) 来自 AA 初始化器的代码

    # This setting changes the method which Active Admin calls
    # to return the currently logged in user.
    config.current_user_method = :current_user
    

    如果您的模型中有某种使用登录用户的方法,您可以执行类似的操作

    controller do
          def scoped_collection
            Post.some_method(current_user)
            #or for example Post.select(current_user.visible_posts_columns) ... etc
          end
        end
    

    【讨论】:

    • 好的,我不知道 scope_to 部分,我今晚去看看。我确实有自定义身份验证以及我正在使用的 cancan。我不确定这是否会影响事情,但我认为 AA 0.5.0 的新版本应该以某种方式使用 cancan 来仅显示适用的记录。初始化程序中是否有我需要为此设置的配置?您是否为此使用过 0.5.0?再次感谢!
    • 如果我理解您可以使用 scoped_collection 方法来“预先确定”您的数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多