带参数的 Rails 活动管理范围

Mar*_*ejo 4 ruby-on-rails activeadmin

此处解释了在 ActiveRecord 范围内使用 active admin:Rails3 Active Admin:如何在第一次单击 Shipments 标签时仅显示打开状态记录?

现在我正在尝试使用 params为范围做这件事。

在我的模型中,我有:

#app/models/shipments.rb
scope :by_status, -> (status) { where(status: status) }
Run Code Online (Sandbox Code Playgroud)

我希望能够将其用于app/admin/shipments.rb类似

# app/admin/shipments.rb
scope :by_status 'open'
Run Code Online (Sandbox Code Playgroud)

有没有一种主动的管理方式来做到这一点?

Pla*_*eva 5

您可以使用一个块:

  scope :open do |shipments|
    shipments.by_status('open')
  end
Run Code Online (Sandbox Code Playgroud)

如果您希望这是默认范围:

  scope :open, default: true do |shipments|
    shipments.by_status('open')
  end
Run Code Online (Sandbox Code Playgroud)