Conversation
…c methods for resource and collection queries Also fix pagination and ordering
ararojas
reviewed
Oct 6, 2023
| ``` | ||
|
|
||
| ### ActiveAdminResource::AgentDataBase | ||
| Since API quering changes from one ActiveResource integration to another, for this gem to work the proyect's base resource class must implement the following methods: |
ararojas
reviewed
Oct 6, 2023
| ``` | ||
| ### `process_active_admin_resource_query(_id)` (optional) | ||
|
|
||
| If this method is defined, it will be called instead if `find` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descripción
Queremos que esta gema solo se encargue de solucionar la integración de
ActiveAdminconActiveResource, lo que la transforma en una herramienta de uso genérico.Además queremos hacerlo sin modificar clases de ActiveAdmin.
Solución
Toda interacción entre activeadmin y activerecord ocurre utilizando la clase
Activeadmin::Resourcecomo intermediario. La nueva implementación hace una pequeña modificación a::ActiveAdmin::Namespace.find_or_build_resourcepara que utilice una clase especialActiveAdminResource::Resourceen vez deActiveadmin::Resourceen el caso que el recurso se trate de unActiveResource::Base.Esta implementación depende del api interna de activeadmin (no hay como escapar de eso), pero al menos no modifica activeadmin, lo que nos estaba trayendo problemas en vistas de activerecord.
Otro punto importante de esta implementación es que elimina todo el código de conexión específico de buda, esto será parte de otra gema.
Tests
El problema de hacer tests para esto lo dejaremos para otro release.