Неинициализированная константа в контроллере приложения - PullRequest
1 голос
/ 09 марта 2011

В моем приложении на 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 Ответ

1 голос
/ 09 марта 2011

Для получения класса UserActionType на самом деле вам нужен файл, в который он записан.Для моделей или там, где сконфигурирована автозагрузка, Rails делает это проще благодаря автозагрузке файлов.Например, если встречается UserAction, Rails ищет файл с именем user_action.rb в моделях или там, где вы настроили автозагрузку, и запрашивает этот файл автоматически.Итак, в вашем случае вы можете создать новый файл с именем user_action_type.rb в app/models и вставить туда свой класс UserActionType.Тогда эта ошибка не возникнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...