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


  1. не делайте другую базу данных глобальной, а затем сделайте sqlite3 специфичной для среды в вашем файле gem.
  2. используйте предыдущий камень.
  3. убедитесь, что вы запустите 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

Проблема Решена!

оказывается, это было несколько разных проблем:

  1. Я ранее упустил из виду, что sqlite3 необходимо установить для запуска, как указано в rubyonrails.org ' S начало работы руководство. Гид дал мне ссылку на sqlite.com, из которого мне нужно было загрузить командную оболочку и dll, оба находятся в разделе "предварительно скомпилированные двоичные файлы для Windows". Подробнее об этом ниже.

  2. установка gem дала мне ошибку, которая заявил, что он не может ничего скачать с rubygems.org - ... Оказывается, была новая версия rubygems, о которой я не знал. Исправлено с GEM update --system.

  3. Я попытался установить gem sqlite3 -- platform=ruby, но безрезультатно. Он не смог создать собственное расширение и не смог найти sqlite3.h.

  4. Я задал свой вопрос также на 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 работает для меня).


работал для меня sudo apt-get install libsqlite3-dev