Rails控制器命名空间/模块配置

时间:2016-06-15 16:39:03

标签: ruby-on-rails ruby-on-rails-4 controller namespaces models

我的rails项目中有一个模型的API控制器。

API控制器如下:

#app/controllers/api/v1/airbnb/customers_controller.rb
module Api
  module V1
    class CustomersController < Api::V1::BaseApiController
      def create
        @airbnb_customer = Airbnb::Customer.new
        @json_request['airbnb_customer']['client_id'] = @client.id
        update_values :@customer, @json_request['airbnb_customer']
      end
    end
  end
end

创建新airbnb_customer时出现问题:

NameError in Api::V1::Airbnb::CustomersController#create
uninitialized constant Api::V1::Airbnb::Customer

我不知道在调用Airbnb::Customer.new时如何防止应用Api :: V1范围 任何帮助将不胜感激。

我的模型位于app/models/airbnb.rbapp/models/airbnb/customer.rb

1 个答案:

答案 0 :(得分:1)

在Airbnb应该访问命名空间树的“root”之前

添加::所以你应该添加

::Airbnb::Customer.new