Я начинаю рельсы, следуя этому руководству: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec-the_first_application который кажется очень приятным.Почему мой сервер rails выдает предупреждение об устаревании, а не соединение с sqlite3?
В начале автор рассказывает о важности версий для драгоценных камней и программного обеспечения, поэтому я сделал все возможное, чтобы использовать одни и те же версии.
Я следил за учебником, и все прошло хорошо, установка была в порядке (из его предложенного источника: http://railsinstaller.org/en) Я загрузил ruby 1.9.
После установки я использовал рельсы новый first_app создать мое приложение, изменил Gemfile к этому один:
source 'https://rubygems.org'
ruby '1.9.3' #In the tutorial is 2.0.0, but changed to match my ruby version,
#as specified in the tutorial
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.1'
group :development do
gem 'sqlite3', '1.3.8'
end
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
Когда я запускаю рельсы команды сервера, я получаю следующее сообщение об ошибке:
DEPRECATION WARNING: config.whiny_nils option is deprecated and no longer works.
(called from block in <top (required)> at D:/rails/first_app/config/environment
s/development.rb:10)
config.eager_load is set to nil. Please update your config/environments/*.rb fil
es accordingly:
* development - set it to false
* test - set it to false (unless you use a tool that preloads your test enviro
nment)
* production - set it to true
Но открытие localhost: 3000 отлично работает. При нажатии на «Об охране окружающей вашего приложения» ссылке, генерирует ошибку
ActiveRecord::ConnectionNotEstablished
Rails.root: D:/rails/first_app
я проверил, и мой database.yml использует sqlite3.
Когда я запускаю грабли БД: создать внутри папки моего приложения, я получаю
rake aborted! Specified 'postgresql' for database adapter, but the gem is not loaded. Add
gem 'pg'
to your Gemfile.
Я думаю, что, возможно, эти три проблемы связаны и источником проблемы является то, что сообщение об ошибке при запуске сервера рельсы. Что я могу сделать, чтобы исправить это, может быть, это рубиновая версия 1.9.3 вместо 2.0.0?
спасибо!
EDIT: On this link, я нашел решение моей проблемы на whiny_nils Deprecation
Rails 4 removed the whiny_nils feature. Read more about it in the ActiveRecord chapter.
To solve the deprecation warning, simply remove any lines that set config.whiny_nils. Rails 3 added the configuration by default in config/environments/development.rb and config/environments/test.rb by default.
не знает, почему создание приложения и запустить его с той же версией бы вызвать эту проблему, но нормально. No.1 fixed :)
Edit2: В той же ссылке я исправил проблему config.eager_load, создав этот конфиг в своих файлах конфигурации и установив значение.
Активная запись остается.
EDIT 3: Это мой database.yml файл
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
Если вы собираетесь использовать базу данных postresql (в /config/database.yml), вам нужно добавить postresql gem (gem 'pg') в Gemfile – nishanthan
Нет, я хочу использовать базу данных sqlite3. Я не знаю, почему rake ссылается на postgres :( – JSBach
проверьте файл /config/database.yml, есть ли у адаптера базы данных postgresql – nishanthan