Come ottengo tutti i nomi delle rotte in Rails?
Per poter ottenere tutti i nomi delle rote in Rails è sufficiente scavare all'interno di Rails.application.routes:
Rails.application.routes.named_routes.helper_names
Di seguito un esempio di uso all'interno di un form.
= simple_form_for @sidebar_item, url: admin_sidebar_items_path do |f|
= f.input :name, as: :string
= f.input :path, as: :string
= f.input :icon, as: :string
= f.input :sidebar_resource_name, collection: Rails.application.routes.named_routes.helper_names
= f.association :ipy_resource, collection: IpyResource.all.order(:name)
= f.association :sidebar_item
= f.button :submit
Abbiamo notato che è possibile ottenere l'elenco delle sole path in uno dei seguenti modi:
Rails.application.routes.named_routes.path_helpers_module.instance_methods
Rails.application.routes.named_routes.instance_variable_get(:@path_helpers)
Ulteriori dettagli sono recuperabili direttamente nella sorgente. Se qualcuno conosce metodi migliori per ottenere le rotte a disposizioni ci informi :)
Fonti: