2016-08-31 29 views
0

this问题类似,但答案在这里不起作用。Rails命名空间控制器未初始化的常量错误

routes.rb

scope '/api/ do 
    namespace :v1 do 
    scope :reports do 
     get '/reportXYZ', to: 'reports#reportXYZ' 
    end 
    end 
end 

app/controllers/V1/reports_controller.rb

module V1 
    class ReportsController < ApplicationController 
     def reportXYZ 
     ... 
     end 
    end 
end 

错误:

uninitialized constant V1只能在Windows上,正常工作在Ubuntu。怎么来的?

+3

您的磁盘上的目录必须是'v1',不' V1'。请修复您的路线文件中的语法错误。 – meagar

+0

你的意思是它适用于Windows而不是Ubuntu? – amingilani

+0

上面的代码在ubuntu和debian上运行良好,但在windows上却不行(有趣的是,在windwos 10上也不能运行新的linux子系统) – Killerpixler

回答

0

在你的路由的.rb文件,而不是为API编写这样

namespace :api do 

    namespace :v1 do 

    scope :reports do 
     get '/reportXYZ', to: 'reports#reportXYZ 
    end 
    end 

end 

而在你的控制范围写

module api 

    module V1 

    class ReportsController < ApplicationController 
     def reportXYZ 
     ... 
     end 
    end 

    end 
END 
相关问题