【问题标题】:NO routes match没有路线匹配
【发布时间】:2016-06-24 08:50:10
【问题描述】:

我正在尝试实施收集路线,但收到此错误

ActionController::RoutingError (No route matches [POST] "/api/users/editProfile"):
  path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  path/gems/web-console-2.3.0/lib/web_console/middleware.rb:20:in `block in call'
  path/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in `catch'
  path/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in `call'
  path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  path/gems/railties-4.2.6/lib/rails/rack/logger.rb:38:in `call_app'
  path/gems/railties-4.2.6/lib/rails/rack/logger.rb:20:in `block in call'
  path/gems/activesupport-4.2.6/lib/active_support/tagged_logging.rb:68:in `block in tagged'
  path/gems/activesupport-4.2.6/lib/active_support/tagged_logging.rb:26:in `tagged'
  path/gems/activesupport-4.2.6/lib/active_support/tagged_logging.rb:68:in `tagged'
  path/gems/railties-4.2.6/lib/rails/rack/logger.rb:20:in `call'
  path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/request_id.rb:21:in `call'
  path/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
  path/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
  path/gems/activesupport-4.2.6/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  path/gems/rack-1.6.4/lib/rack/lock.rb:17:in `call'
  path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/static.rb:120:in `call'
  path/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
  path/gems/railties-4.2.6/lib/rails/engine.rb:518:in `call'
  path/gems/railties-4.2.6/lib/rails/application.rb:165:in `call'
  path/gems/rack-1.6.4/lib/rack/lock.rb:17:in `call'
  path/gems/rack-1.6.4/lib/rack/content_length.rb:15:in `call'
  path/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in `service'
  /usr/share/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
  /usr/share/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
  /usr/share/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'


  Rendered path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.8ms)
  Rendered path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (6.2ms)
  Rendered path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.2ms)
  Rendered path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (0.9ms)
  Rendered path/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (62.4ms)


 resources :users do
            collection do
              post '/users/editProfile' => 'users#update'
            end
          end


class Api::V1::UsersController < Api::V1::ApisController
    skip_before_action :authenticate_user, :except => [:destroy]
    before_action :set_user, only: [:show, :edit, :update, :destroy]


     def update
        @user.attributes = user_params
        @user.skip_password_validation = true
        if @user.save
            render :json => {result: true,:object => @user}
        else
            render :json => {result: false,status: INVALID_CREDENTAILS_STATUS,:object => @user.errors.full_messages}
        end     
    end

    private

        def user_params
            params.require(:user).permit(:email,:password,:password_confirmation,:first_name,:last_name,:mobile_number,:landline_number,:office_number ,:profile )
        end

 end

【问题讨论】:

  • 请发布您遇到的确切错误。
  • 好的,我正在发布确切的错误
  • 同时发布“rake routes”(命令行)的输出
  • 使用集合时不需要加'users/'。应该只是'/editProfile'
  • 一个collection 路由应该在多个用户上运行,你的UsersController#update 方法只适用于一个用户。或许您希望 member 路由仅适用于一个用户,或者您需要让 update 采用多个用户。

标签: ruby-on-rails ruby ruby-on-rails-4 routes


【解决方案1】:

随便写 发布 '/editProfile' => 'users#update' 代替 post '/users/editProfile' => 'users#update'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2016-02-04
    • 2012-10-11
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多