Как установить по умолчанию для пользовательских областей индекса в Active Admin? - PullRequest
0 голосов
/ 08 января 2019

В одном из моих проектов RoR я использую ActiveAdmin (1.4.3) и Discard gems. Я создал две пользовательские области, подобные этой:

scope ('Kept') { |scope| scope.kept }
scope ('Discarded') { |scope| scope.discarded }

Я хочу установить один из них ('Kept') в качестве области по умолчанию, которая будет применяться, когда пользователь посещает страницу индекса для ресурса (и мне не нравится идея добавления default_scope в моя модель)

Вот фрагмент из Документация активного администратора :

scope :all, default: true

# assumes the model has a scope called ':active'
scope :active

# renames model scope ':leaves' to ':subcategories'
scope "Subcategories", :leaves

# Dynamic scope name
scope ->{ Date.today.strftime '%A' }, :published_today

# custom scope not defined on the model
scope("Inactive") { |scope| scope.where(active: false) }

# conditionally show a custom controller scope
scope "Published", if: -> { current_admin_user.can? :manage, Posts } do |posts|
  posts.published
end

Это показывает, что есть необязательный аргумент default, который, на самом деле, работает как предназначенный для простых областей действия с символом.

Я пытался добавить это в свою пользовательскую область следующим образом:

scope ('Kept', default: true) { |scope| scope.kept }

но я получаю синтаксические ошибки.

похоже, что он работает только для областей с символом, а не со строкой и необязательным блоком. Есть ли обходной путь для этого?

...