1

文件结构:

../controllers
    /api
      /v1
        users_controller.rb
  some_controller.rb

users_controller.rb 内部

module Api
  module V1
    class UsersController < ApplicationController
      def create
        return false
      end
    end
  end
end

我可以在控制器中包含 Api 并执行 Api::V1::UsersController。但是,当我尝试

Api::V1::UsersController.create

在任何控制器中我都会收到错误消息:

undefined method `create' for Api::V1::UsersController:Class

我试过在 lib 中做模块,但是 rails 4 的自动加载很奇怪,所以我尝试这样做,但我不知道为什么我的方法是未定义的。当我进入控制台并放入 Api::V1::UsersController.methods.sort 时,:create 方法不存在。那么我做错了什么?

4

1 回答 1

1

create不是类方法。不能称之为Class.method

您需要一个此类的实例来调用它。

如果您只是想尝试(尽管这不是控制器的工作方式)

Api::V1::UsersController.new.create
于 2013-09-24T17:41:00.867 回答