2016-01-19 2 views
2

Я не могу использовать константы, которые я помещал в config/initializers/constants.rb во время запуска приложения Sinatra с помощью мастера или сервера rails.NameError - неинициализированная константа во время работы dev сервера

App, кажется, не видеть, как они бросали это на меня:

NameError - uninitialized constant UserJson::API_DATE_FORMAT: 

Могу ли я каким-то образом заставить перезагрузить их?

EDIT: Вот класс, который терпит неудачу:

require 'active_record' 

    class UserJson 

     attr_accessor :id, :active, :created_at, :updated_at, :name, :email 

     def self.private_json(user) 
     json = UserJson.new() 
     json.id = user.id 
     json.active = user.active 
     json.email = user.email 
     json.name = user.name 
     json.updated_at = user.updated_at.strftime(API_DATE_FORMAT) 
     json.created_at = user.created_at.strftime(API_DATE_FORMAT) 
     json 
     end 

    end 

Это под приложение/модели/user.rb. У меня там больше классов, и каждый из них терпит неудачу при попытке прочитать одну из констант, объявленных в файле, с помощью API_DATE_FORMAT

+1

вы перезагрузили сервер? –

+0

После каждого изменения я просто убиваю его процесс и запускаю команду стартера, чтобы перезапустить ее –

+0

, где вы delcare API_DATE_FORMAT? –

ответ

3

Когда вы обновляете/добавляете что-либо под каталогом config, вы должны перезагрузить сервер, так как изменения не загружаются автоматически в этом папка.

Другой причиной может быть проблема разрешения константы:

попробовать

json.created_at = user.created_at.strftime(::API_DATE_FORMAT) 

EDIT

Вы можете потребовать файл с константами в модели:

require_relative 'config/initializers/constants' 

Но поскольку у вас есть несколько моделей, где вы используете эти константы, я бы попытался ее решить во всем мире.

Добавление требуют основного файла приложения будет убедиться, что вы не должны требовать файл в каждой модели, но только один раз:

# collector.rb (Sinatra input file) 
require_relative 'config/initializers/constants' 
+0

Я перезапустил сервер, убив его и перезапустив команду стартера командой –

+0

, пожалуйста, напишите код, в котором вы используете константу 'API_DATE_FORMAT' –

+0

Отредактировано сообщение, добавлено код –

Смежные вопросы