ruby-on-rails - "scoped"查询的事件管理员过滤器

标签 ruby-on-rails ruby activeadmin rails-activerecord

我正在使用 ActiveAdmin 并尝试使用我自己的范围设置过滤器。这是模型示例:

class MyModel < ActiveRecord::Base
  scope :by_nationality, lambda { |nationality| OtherModel.where(nationality: nationality).map(&:my_model) }
end

下面是我如何设置过滤器:

ActiveAdmin.register MyModel do
  filter :nationality
end

不幸的是,这不起作用:过滤框不包含任何国籍过滤器。 有谁知道我应该如何设置这个过滤器,如果可能的话?

谢谢!

最佳答案

首先,你需要关联OtherModel和MyModel

class MyModel < ActiveRecord::Base
   belongs_to :other_model
end

你不需要范围,过滤器适用于关联模型

ActiveAdmin.register MyModel do
  filter :other_model_nationality
end

关于ruby-on-rails - "scoped"查询的事件管理员过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24577962/

相关文章:

ruby-on-rails - Rspec 找不到 ActiveAdmin Controller

ruby-on-rails - ActiveAdmin - 如何删除所有对象(不仅仅是当前列表页面上的对象)(Rails ')

javascript - 如何使用 Jquery 更新数据确认属性内的消息?

ruby-on-rails - Rspec:隐式定义的主题

Ruby 或正则表达式去除多余的换行符

ruby - Rails 3 - #<User :0x00000104c69b98> 的未定义方法 `where'

ruby-on-rails - ActiveAdmin 中的自定义创建操作

ruby-on-rails - Rails 4.2.x - 在模型中使用参数散列数据

ruby-on-rails - Rails 路由 : add a custom route to the standard list of actions

ruby - 如何限制同一 Ruby 脚本的并发实例?