简体   繁体   中英

Change URL of Active_Admin Resource | how to iverwrite AA routing?

I want to change the route of a resource from "/partner_programms" to "/programmangebot".

is there a way to do it with active_admin without put in my own route to routes.rb?

ActiveAdmin do:

       admin_categories GET        /admin/categories(.:format)                {:action=>"index", :controller=>"admin/categories"}
                    POST       /admin/categories(.:format)                {:action=>"create", :controller=>"admin/categories"}
 new_admin_category GET        /admin/categories/new(.:format)            {:action=>"new", :controller=>"admin/categories"}
edit_admin_category GET        /admin/categories/:id/edit(.:format)       {:action=>"edit", :controller=>"admin/categories"}
     admin_category GET        /admin/categories/:id(.:format)            {:action=>"show", :controller=>"admin/categories"}
                    PUT        /admin/categories/:id(.:format)            {:action=>"update", :controller=>"admin/categories"}
                    DELETE     /admin/categories/:id(.:format)            {:action=>"destroy", :controller=>"admin/categories"}

when i do

#routes.rb
namespace :admin do
  resources :categories, :path=>"Kategorien"
end

i get unnamed routes

               admin_categories GET        /admin/categories(.:format)                {:action=>"index", :controller=>"admin/categories"}
                            POST       /admin/categories(.:format)                {:action=>"create", :controller=>"admin/categories"}
         new_admin_category GET        /admin/categories/new(.:format)            {:action=>"new", :controller=>"admin/categories"}
        edit_admin_category GET        /admin/categories/:id/edit(.:format)       {:action=>"edit", :controller=>"admin/categories"}
             admin_category GET        /admin/categories/:id(.:format)            {:action=>"show", :controller=>"admin/categories"}
                            PUT        /admin/categories/:id(.:format)            {:action=>"update", :controller=>"admin/categories"}
                            DELETE     /admin/categories/:id(.:format)            {:action=>"destroy", :controller=>"admin/categories"}
                            GET        /admin/Kategorien(.:format)                {:action=>"index", :controller=>"admin/categories"}
                            POST       /admin/Kategorien(.:format)                {:action=>"create", :controller=>"admin/categories"}
                            GET        /admin/Kategorien/new(.:format)            {:action=>"new", :controller=>"admin/categories"}
                            GET        /admin/Kategorien/:id/edit(.:format)       {:action=>"edit", :controller=>"admin/categories"}
                            GET        /admin/Kategorien/:id(.:format)            {:action=>"show", :controller=>"admin/categories"}
                            PUT        /admin/Kategorien/:id(.:format)            {:action=>"update", :controller=>"admin/categories"}
                            DELETE     /admin/Kategorien/:id(.:format)            {:action=>"destroy", :controller=>"admin/categories"}

Another way would be to rename the resource:

ActiveAdmin.register Partner::Programms, as: 'Programmangebot' do

This changes all references to the resource.

You could add routes via another file as described at Rails Best Practices – split route namespaces into different files . I don't know how you'd remove the existing route.

correct answer of comment:

tried adding admin/Kategorien after ActiveAdmin.routes(self) and got the same result as you, the new routes were unnamed. If I put the admin/Kategorien route above ActiveAdmin.routes(self), then the my Kategorien routes were named, and the ActiveAdmin ones were unnamed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM