Как я могу иметь представление Active Admin для вложенных и не вложенных ресурсов?

Пользователь has_many транзакций. У меня есть активный администратор, в настоящее время настроенный на вложение транзакций под пользователем для базового CRUD с использованием own_to:user в admin/ Transactions.rb. Мне также, однако, нужно представление верхнего уровня для транзакций, которое показывает подмножество записей транзакций, которые охватывают пользователей. Как я могу выполнить эту вторую часть?

2 ответа

Я думаю, что лучший способ сейчас - перейти в "опциональный" вариант:

ActiveAdmin.register Transactions do
  belongs_to :user, :optional => true
  ...
end

Таким образом, вы получите доступ ко всем транзакциям из главного меню навигации, а также из вложенного представления для конкретного пользователя.

Если вы хотите узнать больше, вы можете обратиться к исходному коду:

https://github.com/gregbell/active_admin/blob/0.4.x-stable/lib/active_admin/resource.rb

Линия 131

def include_in_menu?
  super && !(belongs_to? && !belongs_to_config.optional?)
end

Вам необходимо создать два ресурса Active Admin, которые ссылаются на одну и ту же модель Active Record, которая требует вложенных и не вложенных маршрутов.

Родительский ресурс:

ActiveAdmin.register ParentClass do
end

Вложенный ресурс:

ActiveAdmin.register ChildClass do
  belongs_to :parent_class
end

Неопубликованный ресурс:

ActiveAdmin.register ChildClass, :as => "All Children" do
end

Теперь у вас будет прямой доступ к ChildClass через вкладку "Все дети", и вы не получите сообщение об ошибке, которое отсутствует в ParentClass, при этом сохраняя вложенный доступ к ChildClass из ParentClass.

Другие вопросы по тегам