This is the official documentation of the agent_ruby Ruby agent.
Route overrides ↗ allowed customizing the behavior of the routes exposed by the agent.
This very low-level feature was used to implement many use cases:
Attach handlers to events in the UI
Customize filtering, search and sort behaviors
Other advanced use cases.
Because our new agent API is higher-level, the protocol used to communicate between the agent and the application can no longer be manipulated.
Code cheatsheet
What was the route override used for?
How to migrate it?
Add custom permissions
Add validation to fields
Add validation to whole records
Run code on UI events
Change the search behavior
Change the filtering behavior of fields
Change the sort behavior of fields
Other use case
Examples
Add custom permissions
Custom permissions would better be implemented by using the Roles ↗ feature from the UI.
Define a new route into your routes.rb file:
Add a new method in your controller.
moduleForestLianaclassBooksController<ForestLiana::ApplicationControllerdefdestroyBook.find(params[:id]).destroy head :no_contentendendend
moduleForestAdminRailsclassCreateAgentdefself.customize @create_agent.customize_collection('Book') do|collection| collection.add_hook('Before','Delete') do|context| is_allowed =true# YOUR LOGIC HEREif!is_allowed context.raise_forbidden_error('This collection is protected, you cannot remove from it.')endendendendendend
Add validation to fields
Define a new route into your routes.rb file.
Add a new method to your controller.
moduleForestLianaclassCompaniesController<ForestLiana::ApplicationControllerdefcreateif params[:name] && params[:name].match?(/^Forest/) head :bad_request, content_type: 'application/json'elsesuperendenddefupdateif params[:name] && params[:name].match?(/^Forest/) head :bad_request, content_type: 'application/json'elsesuperendendendend