2016-11-28 65 views
2

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

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?

回答

1

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

如果是这样,

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

未定义局部变量或方法'CURRENT_USER”。但是,在启动服务器后,我得到了这个错误,因此没有current_user,因为没有请求。这就是为什么我想使用lambdas或特效,但也提出了错误。 – kriskova

+0

您使用的是什么版本的ActiveAdmin?我能够启动我的服务器并按照预期使用'gem'activeadmin','1.0.0.pre4''进行过滤。如果更新版本不起作用,请分享您的整个文件。 – Joey