【问题标题】:ActiveAdmin select filter collectionActiveAdmin 选择过滤器集合
【发布时间】:2016-11-28 22:20:55
【问题描述】:

我正在尝试使用 Rails 4 在 ActiveAdmin(1.0.0pre4) 中创建选择类别过滤器。每个公司都有不同的类别。如何创建基于 current_user 公司的过滤器集合?

filter :by_category,
        as: :select,
        collection: proc { Category.by_company(current_company) }

这会导致undefined method 'map' for #<Proc:0x007fccc3b29340>

如果我删除了周围的 proc,那么我在启动服务器时会收到以下错误:

undefined local variable or method 'current_company' for #<ActiveAdmin::ResourceDSL:0x007fb8a8c332b0> (NameError)

是否可以使用 ActiveAdmin 1.0.0pre4 执行此操作?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 activeadmin


    【解决方案1】:

    你能从current_user 得到current_company 吗?即current_user.company

    如果是这样,

    filter :by_category,
        as: :select,
        collection: proc { Category.by_company(current_user.company) }
    

    【讨论】:

    • 未定义的局部变量或方法“current_user”。但是我在启动服务器后立即收到此错误,因此没有 current_user ,因为还没有请求。这就是为什么我想使用 lambdas 或 procs 但这些也会引发错误。
    • 您使用的是什么版本的 ActiveAdmin?我可以使用gem 'activeadmin', '1.0.0.pre4' 启动我的服务器并按预期进行过滤。如果更新您的版本不起作用,请分享您的整个文件。
    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多