【发布时间】:2015-07-13 08:11:53
【问题描述】:
我有“用户”模型类 (app/models/user.rb)
这个类可以在除特殊命名空间之外的任何控制器上工作。
例如,
app/controllers/chimiseng/user_controller.rb - 用户模型有效! app/controllers/chimiseng/*_controller.rb - 所有功能!
app/controllers/nadmin/* - 用户模型在任何控制器中都不起作用。
应用程序/控制器/nadmin/partner/account_controller.rb
应用程序/控制器/nadmin/log_controller.rb
..
..
错误信息:
NoMethodError in Nadmin::Partner::AccountController#index
undefined method `where' for Nadmin::User:Module
14: @users = User.where("info_update = true")
然后如果刷新,错误信息改变,
NameError in Nadmin::Partner::AccountController#index
uninitialized constant Nadmin::Partner::AccountController::User
14: @users = User.where("info_update = true")
和
logger.debug User.class # => "Module"
我没有模块用户。
只有类 User
为什么会出现这个错误?为什么 User.class 是 Module ?
(logger.debug AnyModel.class # => "Class")
我真的很想知道..
Rails 版本 4.1.4
ruby 2.2.0p0(2014-12-25 修订版 49005)
++已编辑(2015-07-14 11:53 am (+09:00))
#nadmin/partner/account_controller.rb#index action
15: logger.debug User.ancestors
16: @user = User.where("info_update = true")
当服务器首先启动时,并请求此操作。第 16 行出现错误“未初始化的常量 Nadmin::Partner::AccountController::User”。第 15 行出现 log print "[Nadmin::User]"
但是! 刷新后,错误行变为15。
第 15 行的错误“未初始化的常量 Nadmin::Partner::AccountController::User”。(当然,没有日志记录,因为行日志记录是错误行)
并再次重复刷新,错误行保持15。错误信息相同。
15: logger.debug User.class
16: @user = User.where("info_update = true")
与上面的状态相同。
(当服务器首先启动并请求此操作时。第 16 行出现错误“未初始化的常量 Nadmin::Partner::AccountController::User”。
并在第 15 行 log print "Module"
但是!刷新后,错误行变为15.
第 15 行出现错误“未初始化的常量 Nadmin::Partner::AccountController::User”。
并再次重复刷新,错误行保持15。错误信息相同。)
【问题讨论】:
标签: ruby-on-rails rails-activerecord