如何将参数传递给ActiveAdmin索引配置中的作用域?

时间:2016-10-16 15:53:01

标签: ruby-on-rails activeadmin

给定一个名为Foo的activerecord模型,其范围需要这样的参数:

scope :updated_since, ->(dt) { where( "updated_at >= ?", dt ) }

如何在app / admin / foo.rb中使用它,即如何使用所需的参数调用它以便创建activeadmin范围按钮?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以像这样在寄存器块中提供一个块

scope "last 10 days" do |foos|
  foos.updated_since(Date.today - 10.days)
end

scope "last 30 days" do |foos|
  foos.updated_since(Date.today - 30.days)
end

可以缩写为

%w(10 30).each do |days_string|
  scope "last #{days_string} days" do |foos|
    foos.updated_since(Date.today - days_string.to_i.days)
  end
end

享受ActiveAdmin:)