2016-07-21 8 views
0

ルビー2.3.1p112(2016年4月26日改訂54768)[x86_64の-darwin15]ルビーオンレール:NameError:初期化されていない一定のタイムゾーン::設定

レール4.2

レーキ、バージョン10.4.2

私は別の開発者からプロジェクトを引き継ぎます。私はGithubからコードをチェックアウトすることができ、 "bundle install"を実行することができました。しかし、私は実行します。

# Pick the frameworks you want: 
    require "active_model/railtie" 
    require "active_job/railtie" 
    # require "active_record/railtie" 
    require "action_controller/railtie" 
    require "action_mailer/railtie" 
    require "action_view/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(*Rails.groups) 

    module Invtr 
    class Application < Rails::Application 
     Timezone::Configure.begin do |c| 
     c.username = 'AIzaSyAtf' 
     c.google_api_key = 'AIzaSyAtf' 
     end 

     # 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 

私は、これは以前の開発者のために働いていたと言われています。ファイルは次のように見えること

config/application.rb 

bundle exec rake db:setup 
    rake aborted! 
    NameError: uninitialized constant Timezone::Configure 

これはで何かを参照しているようですだから私は問題が私のセットアップで何かと一緒だと仮定しなければならない。しかし、他に何をする必要がありますか?なぜ正しい宝石が積み込まれていないのですか?

以前の開発者は、Gemfileにこの行を入れていた:

gem 'timezone' 

そして、私は以下を参照してください。

vendor/cache/ruby/2.3.0/gems/timezone-1.1.1 

だから、宝石があります。

しかし、何とかしてapplication.rbにロードされていません。

マイGemfile:

source 'https://rubygems.org' 

    gem 'rails', '4.2.0' 
    gem 'sass-rails', '~> 5.0' 
    gem 'uglifier', '>= 1.3.0' 
    gem 'coffee-rails', '~> 4.1.0' 
    gem 'jquery-rails' 
    gem 'turbolinks' 
    gem 'jbuilder', '~> 2.0' 
    gem 'sdoc', '~> 0.4.0', group: :doc 
    gem 'bcrypt', '~> 3.1.7' 
    gem 'oauth2' 
    gem 'faraday' 
    gem 'signet' 
    gem 'unicorn' 
    gem 'icalendar' 
    gem 'quiet_assets', '~> 1.1' 
    gem 'mongoid', '~> 5.0.0' 
    gem 'bson_ext' 
    gem 'devise' 
    gem 'pry-rails' 
    gem 'capybara' 
    gem 'selenium-webdriver' 
    gem 'simple_form' 
    gem 'foundation-rails' 
    gem 'dotenv-rails', :groups => [:development, :test] 

    gem "mongoid-paperclip", :require => "mongoid_paperclip" 
    gem 'aws-sdk', '~> 1.3.4' 

    # CircleCI test metadata formatters 
    gem 'rspec_junit_formatter', '0.2.2' 
    gem 'rails_12factor', group: :production 
    gem 'geocoder' 
    gem 'timezone' 
    gem "httpclient" 

    group :development do 
    # gem "letter_opener" 
    end 

    group :development, :test do 
    gem 'byebug' 
    gem 'web-console', '~> 2.0' 
    gem 'spring' 
    gem 'rspec-rails' 
    gem 'factory_girl_rails' 
    gem 'database_cleaner' 
    gem 'faker' 
    end 

    group :test do 
    gem 'shoulda-matchers' 
    end 
+0

ところ、彼は '宝石「timezone''を入れたのですか?それは_not_inでなければならない場合があります。テストグループ –

+0

あなたのgemfileを投稿すると役に立ちます – ollaollu

+0

@ollaollu - 私は今、私のGemfile – charlottesville

答えて

0

は、ファイルにrequire "timezone"を追加します。

+0

を投稿しましたconfig/application.rbに "timezone"が必要な場合は "bundle exec rake db:setup"を実行してください"NameError:初期化されていない定数Timezone :: Configure"。 stacktraceはこの行を指しています: "Timezone :: Configure.begin do | c |" – charlottesville

+0

私はそれをしました。しかし、それは役に立たなかった。 – charlottesville

3

これは、使用しているtimezoneの宝石のバージョンによって異なります。バージョン1.0.0ので、これらの変更を行う必要があります。代わりに使用しての
config/application.rb内のファイル:Geonamesとの構成のための

Timezone::Configure.begin 

をあなたが使用する必要があります

Timezone::Lookup.config(:geonames) 

とGoogleのために:

Timezone::Lookup.config(:google) 

Gemfileも更新してください:

変更gem 'timezone'

gem 'timezone', '~> 1.0'にだからあなたのコードは次のようになります。参考

Timezone::Lookup.config(:geonames) do |c| 
    c.username = 'AIzaSyAtf' 
end 

または

Timezone::Lookup.config(:google) do |c| 
    c.api_key = 'AIzaSyAtf' 
end 

http://www.rubydoc.info/gems/timezone

+0

この質問をしてから数ヶ月後に投稿しましたが、この回答をありがとうございます。私はもはやそのプロジェクトに取り組んでいません。 – charlottesville

関連する問題