命名空间错误ror

时间:2015-07-04 19:09:12

标签: ruby-on-rails namespaces

我收到错误 - 来自应用程序的消息:未定义的局部变量或方法api' for main:Object (NameError), /app/controllers/api/base_controller.rb:1:in'

的routes.rb

namespace :api, defaults: { format: "json" } do
  devise_for :users
  resources :items
end

我的文件夹是(app / controllers / api / items) 在api文件夹中,第一个是base_contoller,其中包含:

base_Controller.rb

class Api::BaseController < ApplicationController  

请帮忙解决。我尝试在路径文件夹中将api更改为Api,然后它会显示“此名称不适合”的错误。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下变体吗?

module Api
  class BaseController < ApplicationController
    # code here
  end
end

它应与namespace :api etc...

中的routes.rb一起使用

我认为类Api::BaseController的版本不起作用,因为根据official guide about constants lookup in rails它是Qualified Constant并且有另一种解析算法。结账提及链接

会很有帮助