ruby-on-rails - Rails 路由到错误的 Controller 操作

标签 ruby-on-rails routes activeadmin

这里是'rake routes'的输出

$ rake routes
        new_user_session GET    /users/sign_in(.:format)            devise/sessions#new
            user_session POST   /users/sign_in(.:format)            devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)           devise/sessions#destroy
           user_password POST   /users/password(.:format)           devise/passwords#create
       new_user_password GET    /users/password/new(.:format)       devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format)      devise/passwords#edit
                         PUT    /users/password(.:format)           devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)             devise/registrations#cancel
       user_registration POST   /users(.:format)                    devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)            devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)               devise/registrations#edit
                         PUT    /users(.:format)                    devise/registrations#update
                         DELETE /users(.:format)                    devise/registrations#destroy
              admin_root        /admin(.:format)                    admin/dashboard#index
         admin_dashboard        /admin/dashboard(.:format)          admin/dashboard#index
              admin_user PUT    /admin/users/:id(.:format)          admin/users#update
batch_action_admin_users POST   /admin/users/batch_action(.:format) admin/users#batch_action
             admin_users GET    /admin/users(.:format)              admin/users#index
                         POST   /admin/users(.:format)              admin/users#create
          new_admin_user GET    /admin/users/new(.:format)          admin/users#new
         edit_admin_user GET    /admin/users/:id/edit(.:format)     admin/users#edit
                         GET    /admin/users/:id(.:format)          admin/users#show
                         PUT    /admin/users/:id(.:format)          admin/users#update
                         DELETE /admin/users/:id(.:format)          admin/users#destroy
                    root        /                                   home#index

这是日志的摘录

Started POST "/admin/users/batch_action" for 127.0.0.1 at 2013-01-18 23:07:07 +0530
Processing by Admin::UsersController#create as HTML

当路由显示时,为什么 /admin/users/batch_action 被路由到 Admin::UsersController#create batch_action_admin_users POST/admin/users/batch_action(.:format) admin/users#batch_action

我正在使用 ActiveAdmin,这些是它生成的路由。

最佳答案

看起来您正在使用 resources 来路由管理员/用户 Controller ,因此 POST http 动词默认为 Controller 中的 create 操作。

如果你想添加另一个 restful POST Controller Action ,做这样的事情,

scope "admin" do
  resources :users do
    member do
      post 'batch_action'
    end
  end
end

我不知道你的 routes.rb 是什么样子,所以它在你的 routes.rb 文件中看起来可能不同。但它看起来应该相似。

关于ruby-on-rails - Rails 路由到错误的 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14404617/

相关文章:

ruby-on-rails-3 - ActiveAdmin:更改 css 文件?

javascript - Rails 3.1 - Active_admin 和复选框

ruby-on-rails - rails,如何从 url 字符串中获取参数?

ruby-on-rails - [xxx] :Array when trying to use array data on Active Admin table_for (Rails, Postgresql、postgres_ext gem 的错误未定义方法 `to_key')

python - 有没有办法告诉 Flask 忽略路径?

javascript - 模块路由在 Express 中不起作用

python - 在 MVC 模式框架中,屏幕抓取模块位于何处?

ruby-on-rails - 带有 SQL 序列的迁移未在测试环境中应用

ruby-on-rails - 如何正确避免 Rails 中嵌套深度超过 1 层的路由

ruby-on-rails - 将成员值以表格形式添加到复选框的input_html