我的Rails应用程序中有一个名为UserAction的模型类 在那个模型中,我有一个常量(我用它作为枚举):
class UserAction < ActiveRecord::Base
end
class UserActionType
ACTION1 = "action1"
ACTION2 = "action2"
end
当我尝试使用那个常量时:
if some_action == UserActionType::ACTION1
在应用程序控制器中我收到以下错误:
NameError (uninitialized constant ApplicationController::UserActionType)
有什么想法?
答案 0 :(得分:1)
要获取UserActionType
类,实际上您需要要求写入它的文件。对于模型或配置自动加载的地方,Rails通过自动加载文件使其更容易。例如,如果遇到UserAction
,Rails会在模型中或在配置了自动加载的任何位置查找名为user_action.rb的文件,并自动要求该文件。因此,在您的情况下,您可以在user_action_type.rb
中创建一个名为app/models
的新文件,并将UserActionType
类粘贴到那里。然后,不会发生此错误。