应用程序控制器中未初始化的常量

时间:2011-03-09 18:59:47

标签: ruby-on-rails ruby

我的Rails应用程序中有一个名为UserAction的模型类 在那个模型中,我有一个常量(我用它作为枚举):

class UserAction < ActiveRecord::Base
end

class UserActionType
    ACTION1 = "action1"
    ACTION2 = "action2"
end

当我尝试使用那个常量时:

if some_action == UserActionType::ACTION1 

在应用程序控制器中我收到以下错误:

NameError (uninitialized constant ApplicationController::UserActionType)

有什么想法?

1 个答案:

答案 0 :(得分:1)

要获取UserActionType类,实际上您需要要求写入它的文件。对于模型或配置自动加载的地方,Rails通过自动加载文件使其更容易。例如,如果遇到UserAction,Rails会在模型中或在配置了自动加载的任何位置查找名为user_action.rb的文件,并自动要求该文件。因此,在您的情况下,您可以在user_action_type.rb中创建一个名为app/models的新文件,并将UserActionType类粘贴到那里。然后,不会发生此错误。