[英]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
向文件添加require "timezone"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.