簡體   English   中英

Ruby On Rails:NameError:未初始化的常量Timezone :: Configure

[英]Ruby On Rails: NameError: uninitialized constant Timezone::Configure

紅寶石2.3.1p112(2016-04-26修訂版54768)[x86_64-darwin15]

導軌4.2

耙,版本10.4.2

我正在接管另一個開發人員的項目。 我能夠從Github簽出代碼,並且能夠運行“捆綁安裝”。 但是后來我做到了:

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

這似乎引用了以下內容:

  config/application.rb

該文件看起來像:

  # 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

有人告訴我這對於以前的開發人員來說是有效的,所以我必須假設問題出在我的設置上。 但是我還需要做什么? 為什么沒有加載正確的寶石?

之前的開發人員已將此行放入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

這取決於您使用的timezone gem的版本。 1.0.0版開始,您必須進行以下更改:
config/application.rb文件中,而不是使用:

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

向文件添加require "timezone"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM