Почему мой сервер rails выдает предупреждение об устаревании, а не соединение с sqlite3?
Я запускаю рельсы, следуя этому руководству: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book, которое кажется очень хорошим.
В начале автор говорит о важности версий для драгоценных камней и программного обеспечения, поэтому я приложил все усилия, чтобы продолжать использовать одни и те же версии.
Я следовал учебному пособию, и все прошло хорошо, установка прошла нормально (из его предложенного источника: http://railsinstaller.org/en) Я скачал ruby 1.9.
После установки я использовал rails new 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
Когда я запускаю команду сервера rails, я получаю следующую ошибку:
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 db: create внутри папки моего приложения, я получаю
грабли прерваны! Для адаптера базы данных указано 'postgresql', но гем не загружен. добавлять
gem 'pg'
в ваш Gemfile.
Я думаю, что, возможно, эти три проблемы связаны, и источником проблемы является то сообщение об ошибке при запуске сервера rails. Что я могу сделать, чтобы это исправить, это может быть версия ruby 1.9.3 вместо 2.0.0?
Спасибо!
РЕДАКТИРОВАТЬ: По этой ссылке я нашел решение для моей проблемы на устаревшей whiny_nils
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.
Не знаю, почему создание приложения и запуск его с той же версией может вызвать эту проблему, но все в порядке. № 1 исправлено:)
Edit2: в той же ссылке я исправил проблему config.eager_load, создав эту конфигурацию в моих файлах конфигурации и установив значение.
Проблема с активной записью остается.
РЕДАКТИРОВАТЬ 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
2 ответа
Я предлагаю решение, которое, я считаю, будет работать лучше для вас:
Удалите номера версий из всех драгоценных камней, кроме рельсов
Он будет работать с rails 4 и ruby 2.0, и для вас, вероятно, подойдет ruby 2.0. При необходимости используйте версию ruby 1.9.3.
Это, вероятно, будет работать лучше для вас сейчас и в будущем.
Лучше избегать всех этих конкретных номеров версий для других драгоценных камней, чтобы избежать проблем с версиями, которые вы испытываете. Вы хотите тратить на это меньше времени, а больше на собственное приложение, код rails, код ruby и т. Д. Большинство гемов сами могут определить правильные версии и зависимости.
Попробуйте быстро сделать другое приложение таким образом (сначала убедитесь, что вы "cd.." из этого приложения, прежде чем снова выполнить команду rails new). Вы также увидите, что создание нового приложения является удивительно частой вещью по сравнению с некоторыми другими, более старыми платформами.
Решено: у меня есть database_url, указывающий на базу данных postgres в моих системных переменных окружения. Я сделал это, когда следовал учебнику по героку давным-давно. Я удалил его, и теперь он работает нормально.