Активный администратор, как визуализировать форму на странице индекса, если объект не создан - PullRequest
1 голос
/ 26 февраля 2020

Я не могу понять, что я делаю неправильно. Мой код не будет работать, если подписка пуста, но если я создал его из rails c, все работает нормально ...

# frozen_string_literal: true

ActiveAdmin.register Subscription do
  actions :index

  index do
    result = Subscriptions::GetPricing.call(admin: current_admin)
    if result.success?
      render partial: 'subscription_form', locals: { amount: result.plan.amount }
    else
      flash[:alert] = result.message
      render partial: 'subscription_errors'
    end
  end
end

Теперь я получаю: Подписок пока нет. простое сообщение. И я хочу оставить все стили, навигационную панель и т. Д. c как по умолчанию, но в контейнере должен храниться мой код из партиалов.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Если вы намереваетесь отобразить форму ввода, если таблица не заполнена, попробуйте следующее:

controller do
  def index
    collection.size == 0 ? redirect_to(new_subscription_path) : super
  end
end
0 голосов
/ 27 февраля 2020

Я думаю, что вы пытаетесь сделать это немного неправильно. Блок index do предназначен главным образом для визуализации уровня просмотра. Если вы хотите переопределить действие контроллера, вам нужно будет сделать это, как показано ниже -

controller do
 def index
   # your code here
 end
end

Ознакомьтесь с документацией -

https://activeadmin.info/8-custom-actions.html

https://activeadmin.info/3-index-pages.html

...