文件结构:
../controllers
/api
/v1
users_controller.rb
some_controller.rb
Inside users_controller.rb
module Api
module V1
class UsersController < ApplicationController
def create
return false
end
end
end
end
我可以在控制器中包含Api并执行Api :: V1 :: UsersController。但是,当我尝试
时阿比:: V1 :: UsersController.create
在任何控制器中我都收到错误:
undefined method `create' for Api::V1::UsersController:Class
我已尝试在lib中执行模块,但rails 4自动加载很奇怪所以我尝试这样做,但我不知道为什么我的方法是未定义的。当我进入控制台并放置Api :: V1 :: UsersController.methods.sort时,:create方法不存在。那么我做错了什么?
答案 0 :(得分:1)
create
不是类方法。它不能被称为Class.method
。
您需要此类的实例来调用它。
如果您只是想尝试(虽然这不是控制器的工作方式)
Api::V1::UsersController.new.create