更改新的路由和编辑

时间:2012-09-16 16:33:46

标签: ruby-on-rails ruby routes

我为“帖子”设置了脚手架,并希望使用ActiveAdmin来编辑和创建新的。

在我的routes.rb文件中,我的帖子设置如下:

resources :posts

我希望有人去'/ posts / new'重定向到'/ admin / posts / new' 与编辑相同的事情。从'/ posts /:id / edit'到'/ admin / posts /:id / edit'

如何在更改新的和编辑时保持其他路线相同?

修改

这是我的“佣金路线”

 tags GET        /tags(.:format)                           tags#index
                           POST       /tags(.:format)                           tags#create
                   new_tag GET        /tags/new(.:format)                       tags#new
                  edit_tag GET        /tags/:id/edit(.:format)                  tags#edit
                       tag GET        /tags/:id(.:format)                       tags#show
                           PUT        /tags/:id(.:format)                       tags#update
                           DELETE     /tags/:id(.:format)                       tags#destroy
                admin_root            /admin(.:format)                          admin/dashboard#index
batch_action_admin_admin_users POST       /admin/admin_users/batch_action(.:format) admin/admin_users#batch_action
         admin_admin_users GET        /admin/admin_users(.:format)              admin/admin_users#index
                           POST       /admin/admin_users(.:format)              admin/admin_users#create
      new_admin_admin_user GET        /admin/admin_users/new(.:format)          admin/admin_users#new
     edit_admin_admin_user GET        /admin/admin_users/:id/edit(.:format)     admin/admin_users#edit
          admin_admin_user GET        /admin/admin_users/:id(.:format)          admin/admin_users#show
                           PUT        /admin/admin_users/:id(.:format)          admin/admin_users#update
                           DELETE     /admin/admin_users/:id(.:format)          admin/admin_users#destroy
           admin_dashboard            /admin/dashboard(.:format)                admin/dashboard#index
  batch_action_admin_posts POST       /admin/posts/batch_action(.:format)       admin/posts#batch_action
               admin_posts GET        /admin/posts(.:format)                    admin/posts#index
                           POST       /admin/posts(.:format)                    admin/posts#create
            new_admin_post GET        /admin/posts/new(.:format)                admin/posts#new
           edit_admin_post GET        /admin/posts/:id/edit(.:format)           admin/posts#edit
                admin_post GET        /admin/posts/:id(.:format)                admin/posts#show
                           PUT        /admin/posts/:id(.:format)                admin/posts#update
                           DELETE     /admin/posts/:id(.:format)                admin/posts#destroy
   batch_action_admin_tags POST       /admin/tags/batch_action(.:format)        admin/tags#batch_action
                admin_tags GET        /admin/tags(.:format)                     admin/tags#index
                           POST       /admin/tags(.:format)                     admin/tags#create
             new_admin_tag GET        /admin/tags/new(.:format)                 admin/tags#new
            edit_admin_tag GET        /admin/tags/:id/edit(.:format)            admin/tags#edit
                 admin_tag GET        /admin/tags/:id(.:format)                 admin/tags#show
                           PUT        /admin/tags/:id(.:format)                 admin/tags#update
                           DELETE     /admin/tags/:id(.:format)                 admin/tags#destroy
batch_action_admin_comments POST       /admin/comments/batch_action(.:format)    admin/comments#batch_action
            admin_comments GET        /admin/comments(.:format)                 admin/comments#index
                           POST       /admin/comments(.:format)                 admin/comments#create
             admin_comment GET        /admin/comments/:id(.:format)             admin/comments#show
    new_admin_user_session GET        /admin/login(.:format)                    active_admin/devise/sessions#new
        admin_user_session POST       /admin/login(.:format)                    active_admin/devise/sessions#create
destroy_admin_user_session DELETE|GET /admin/logout(.:format)                   active_admin/devise/sessions#destroy
       admin_user_password POST       /admin/password(.:format)                 active_admin/devise/passwords#create
   new_admin_user_password GET        /admin/password/new(.:format)             active_admin/devise/passwords#new
  edit_admin_user_password GET        /admin/password/edit(.:format)            active_admin/devise/passwords#edit
                           PUT        /admin/password(.:format)                 active_admin/devise/passwords#update
                     posts GET        /posts(.:format)                          posts#index
                           POST       /posts(.:format)                          posts#create
                  new_post GET        /posts/new(.:format)                      posts#new
                 edit_post GET        /posts/:id/edit(.:format)                 posts#edit
                      post GET        /posts/:id(.:format)                      posts#show
                           PUT        /posts/:id(.:format)                      posts#update
                           DELETE     /posts/:id(.:format)                      posts#destroy
                      root            /                                         posts#index

3 个答案:

答案 0 :(得分:1)

尝试这样的事情

# config/routes.rb
resources :posts, except: [:new, edit] do
  get 'new' => redirect("/admin/posts/new"), :on => :collection
  get 'edit' => redirect("/admin/posts/:id/edit"), :on => :member
end

PS请将您的$ rake routes添加到您的问题中,以使我的代码示例更加清晰。

答案 1 :(得分:0)

get "/posts/new" => redirect("/admin/posts/new")
get "/posts/:id/edit" => redirect("/admin/posts/:id/edit")
resources :posts

答案 2 :(得分:0)

也许你可以redirect_to编辑和新方法。