2013-11-11 3 views
1

Я развертывания Rails 4.0.1 на Heroku, однако, когда я пытаюсь прекомпилировать я получаю следующее сообщение об ошибке:PreCompile активы Failed Rails

$ rake assets:precompile 
rake aborted! 
uninitialized constant SampleApp 
c:/Sites/sampleapp/config/initializers/secret_token.rb:27:in `<top (required)>' 
c:/Sites/sampleapp/config/environment.rb:5:in `<top (required)>' 
Tasks: TOP => environment 
(See full trace by running task with --trace) 

Вот мой environment.rb:

# Load the Rails application. 
require File.expand_path('../application', __FILE__) 

# Initialize the Rails application. 
Sampleapp::Application.initialize! 

линия в secret_token, где он находит проблему:

SampleApp::Application.config.secret_key_base = secure_token 

И это мой application.rb:

require File.expand_path('../boot', __FILE__) 

# Pick the frameworks you want: 
require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "sprockets/railtie" 
# require "rails/test_unit/railtie" 

Require the gems listed in Gemfile, including any gems 
# you've limited to :test, :development, or :production. 
Bundler.require(:default, Rails.env) 

module Sampleapp 
    class Application < Rails::Application 
    # Settings in config/environments/* take precedence over those specified here. 
    # Application configuration should go into files in config/initializers 
    # -- all .rb files in that directory are automatically loaded. 

    # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 
    # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 
    # config.time_zone = 'Central Time (US & Canada)' 

    # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 
    # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 
    # config.i18n.default_locale = :de 
    end 
end 
+0

Heroku будет перекомпилировать свои активы для вас. Сначала вам не нужно делать это локально. – sampierson

+2

В другой заметке я вижу смесь случаев для имени вашего приложения: иногда я вижу SampleApp, а иногда вижу Sampleapp. Если вы выровняете их, это поможет вашей ситуации. – sampierson

+0

Спасибо! Мне просто нужно было изменить secret_token (SampleApp to Sampleapp). Однако я не понял, почему он также обнаружил ошибку в среде ... –

ответ

0

Согласно вашему заявлению application.rb, в вашем проекте используется Sampleapp. Таким образом, убедитесь, что все основные файлы используют одинаковое имя - включая капитализацию - в конфигурации опции:

# config/initializers/secret_token.rb 
Sampleapp::Application.config.secret_key_base = secure_token 
Смежные вопросы