Pio*_*ioz 5 ruby-on-rails filter activeadmin ransack ruby-on-rails-4
我有资源订单.在我的管理面板(activeadmin)中,我需要一个布尔过滤器来获取用户具有特定角色的所有订单.
在Order类中,我有一个这样的范围:
class Order
belongs_to :user
scope :client_only_in, -> { joins(:user).where('users.role = ?', 'client') }
end
Run Code Online (Sandbox Code Playgroud)
在活动管理员order.rb我添加了以下过滤器:
filter :client_only, as: :check_boxes
Run Code Online (Sandbox Code Playgroud)
使用rails 3(元搜索),我可以添加
search_method :client_only_in, type: :boolean
Run Code Online (Sandbox Code Playgroud)
得到过滤器,但使用rails 4和Ransack我不知道该怎么做.
如果不添加search_method订单模型,我会收到错误
undefined method `client_only_in' for Ransack::Search
Run Code Online (Sandbox Code Playgroud)
当我访问索引管理员订单页面.
有帮助吗?
我不知道有什么方法可以做到这一点,但您始终可以有一个选择字段来根据用户角色进行过滤:
filter :users_role, as: :select, multiple: true, collection: proc{ User.uniq.pluck :role }
Run Code Online (Sandbox Code Playgroud)
更新:啊,如果订购一个用户而belongs_to不是:user_role:users_role
| 归档时间: |
|
| 查看次数: |
2772 次 |
| 最近记录: |