Как я могу иметь представление 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.