Ruby on Rails - "добавить' gem sqlite3" в свой Gemfile"
Я полный n00b на рельсах с только начинающим знанием Ruby. Я планирую изучить Ruby больше, прежде чем я действительно изучу Rails, но я слишком любопытен для моего собственного блага.
в любом случае, я следил за учебником, но я застрял, когда он сказал ввести "rails server" в каталоге блога. В нем говорится: "указанный" sqlite3 " для адаптера базы данных, но драгоценный камень не загружен. Добавить gem 'sqlite3'
к вашему Gemfile."Поэтому я вышел из сервера, установил sqlite3, восстановил сервер...только вам опять это сообщение. sqlite3 не отображается, когда я делаю "список драгоценных камней", но я вижу папку в моем корневом каталоге Ruby.
Если это поможет, я получил Ruby 2.0, Rails 4.0, sqlite3 1.3.7
Я извиняюсь, если на это уже ответили где-то еще, но я не смог найти ничего в обширной базе данных, которая является stackoverflow. Я был бы признателен за любое терпение, которое вы готовы предоставить.
большое спасибо! hewhocomes
8 ответов
у меня эта ошибка появилась с той же версией Ruby / Rails / SQLite, которую вы указали в своем вопросе, даже после подтверждения того, что мой gemfile имеет gem 'sqlite3'
. Я не знаю, какая у вас ОС (поэтому вы, вероятно, проголосовали), но я использую Windows 7 x64.
чтобы получить драгоценный камень, который будет установлен в моем приложении Rails, мне нужно было отредактировать Gemfile.lock заменить sqlite3 (1.3.7-x86-mingw32)
С sqlite3 (1.3.7)
затем, после запуска bundle install I наконец, см. в выводе
Using sqlite3 (1.3.7)
при запуске rails server я (наконец) вижу страницу "Добро пожаловать на борт".
У меня была такая же проблема на x64 win 7.
решение (для меня):
1) установить sqlite3
gem установить sqlite3
2) Проверьте установленную версию
gem список sqlite3
Это дает мне: sqlite3 (1.3.8 x64-mingw32)
3) Измените Gemfile.lock
Я меняю " sqlite3 (1.3.8-x86-mingw32) "на" sqlite3 (1.3.8-x64-mingw32)
Он работает :) Обратите внимание, что вам нужно добавить "-" между номером версии и x64 в Gemfile.lock
Xmass
- не делайте другую базу данных глобальной, а затем сделайте sqlite3 специфичной для среды в вашем файле gem.
- используйте предыдущий камень.
- убедитесь, что вы запустите
bundle install
, потомbundle update
и наконецbundle install
.
код Gemfile
может включать такие записи:
group :development, :production do
gem 'pg', '0.15.1'
end
group :test do
gem 'sqlite3', '1.3.6'
end
Проблема Решена!
оказывается, это было несколько разных проблем:
Я ранее упустил из виду, что sqlite3 необходимо установить для запуска, как указано в rubyonrails.org ' S начало работы руководство. Гид дал мне ссылку на sqlite.com, из которого мне нужно было загрузить командную оболочку и dll, оба находятся в разделе "предварительно скомпилированные двоичные файлы для Windows". Подробнее об этом ниже.
установка gem дала мне ошибку, которая заявил, что он не может ничего скачать с rubygems.org - ... Оказывается, была новая версия rubygems, о которой я не знал. Исправлено с GEM update --system.
Я попытался установить gem sqlite3 -- platform=ruby, но безрезультатно. Он не смог создать собственное расширение и не смог найти sqlite3.h.
Я задал свой вопрос также на ruby-форумах. http://www.ruby-forum.com/topic/4415126 Здесь Джоэл Пирсон (виртуоз) предоставил отсутствующие файлы, которые мне нужны через вложение, так как эти файлы не предоставляются в sqlite.com - ... Я следовал его инструкциям, включая размещение файлов оболочки и dll в каталоге bin моего root Ruby...и это сработало!
таким образом, в основном, я смог установить sqlite3 без изменения любого Gemfile или Gemfile.замок. Мой список драгоценных камней показывает sqlite3 (1.3.7) и экран приветствия Rails теперь появляется, как показано в руководстве по началу работы! Я использую бит Windows 7-64, Ruby 2.0, Rails 4.0 и I теперь есть и sqlite3 1.3.7.
большое спасибо всем за предоставление этого совета и направления n00b. Я нахожу, что, изучив Gemfiles, а также Мой корневой каталог Ruby, я понимаю, как Ruby и Rails лучше вписываются в мой компьютер.
как новичок, я бы рекомендовал иметь возможность загружать файлы и папки sqlite3, необходимые для его установки на Windows, как на rubyonrails.org ' S начало работы руководство и в sqlite.com.
спасибо опять! hewhocomes
для меня это помогло поставить версии после gem 'sqlite3'
в gemfile, так что это стало gem 'sqlite3', '1.3.7'
.
Ранее я пытался скомпилировать sqlite3, обновленный gem и т. д... Rails не смог "принять" его до сих пор, поэтому, наконец, определение версии помогло.
просто добавьте эту строку в свой Gemfile, который находится в корневой папке вашего приложения
gem 'sqlite3'
одна небольшая, но важная заметка для тех, кто сталкивается с этой ошибкой. До версии 1.4 Bundler не мог понять 64-битные драгоценные камни в Windows (https://github.com/bundler/bundler/issues/2658), что объясняет, почему 32-битные версии появлялись в Gemfile.замок.
изменения:
"sqlite3 (1.3.8-x86-mingw32" to "sqlite3 (1.3.8-x64-mingw32)"
работает, если вы используете более старую версию bundler. Bundler должен быть в состоянии автоматически выяснить вещи, если вы обновление (1.5.2 работает для меня).