Подтвердить что ты не робот

Ruby on Rails - "Добавить" gem sqlite3 "в ваш Gemfile"

Я полный n00b на Rails, но только новичок в Ruby. Я планирую изучить Ruby еще до того, как я действительно изучу Rails, но я слишком любопытен для себя.

Во всяком случае, я следил за учебником, но я застрял, когда сказал, чтобы набрать "rails server" в каталоге блога. В нем говорится: "Указанный" sqlite3 "для адаптера базы данных, но камень не загружен. Добавьте gem 'sqlite3' в свой Gemfile". Поэтому я покинул сервер, установил sqlite3, восстановил сервер... только для того, чтобы снова получить это сообщение. sqlite3 не появляется, когда я делаю "список драгоценных камней", но я вижу папку в моем каталоге Root Ruby.

Если это помогает, я получил Ruby 2.0, Rails 4.0, sqlite3 1.3.7

Я прошу прощения, если на это был дан ответ уже где-то в другом месте, но я не смог найти ничего в обширной базе данных, которая представляет собой stackoverflow. Я был бы признателен за любое терпение, которое вы готовы предоставить.

Большое спасибо! hewhocomes

4b9b3361

Ответ 1

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

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

  • Ранее я забыл, что для запуска должен быть установлен sqlite3, как указано в руководстве rubyonrails.org Getting Started. Руководство дало мне ссылку на sqlite.com, из которой мне нужно было загрузить командную оболочку и DLL, оба находятся в разделе "Предварительно скомпилированные двоичные файлы для Windows". Подробнее об этом ниже.

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

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

  • Я задал свой вопрос и на рубиновых форумах. http://www.ruby-forum.com/topic/4415126 Здесь Joel Pearson (virtuoso) предоставил недостающие файлы, которые мне нужны с помощью вложения, поскольку эти файлы не представлены в sqlite.com. Я следовал его инструкциям, включая размещение файлов оболочки и dll в моем корневом каталоге Ruby bin... и это сработало!

В принципе, я смог установить sqlite3 без изменения Gemfile или Gemfile.lock. В моем списке драгоценных камней отображается sqlite3 (1.3.7), и теперь появляется экран приветствия Rails, как показано в руководстве Getting Started! Я использую бит Windows 7-64, Ruby 2.0, Rails 4.0, и теперь я получил sqlite3 1.3.7.

Большое спасибо всем за то, что вы дали совет и руководство n00b. Я обнаружил, что, изучив Gemfiles, а также свой корневой каталог Ruby, я понимаю, как Ruby и Rails лучше вписываются в мой компьютер.

Как новичок, я бы рекомендовал загрузить файлы и папки sqlite3, необходимые для установки в Windows, как в руководстве rubyonrails.org Getting Started, так и в sqlite.com.

Еще раз спасибо! hewhocomes

Ответ 2

У меня возникла эта ошибка с той же версией Ruby/Rails/SQLite, которую вы указали в своем вопросе, даже после подтверждения того, что мой gemfile имеет gem 'sqlite3'. Я не знаю, какая у вас ОС (поэтому, вероятно, вы были недооценены), но я использую Windows 7 x64.

Чтобы получить камень, который будет установлен в моем приложении Rails, мне нужно было отредактировать файл Gemfile.lock, чтобы заменить sqlite3 (1.3.7-x86-mingw32) на sqlite3 (1.3.7)

Затем, после запуска установки пакета, я, наконец, вижу на выходе

Using sqlite3 (1.3.7)

При запуске сервера rails я (наконец) вижу страницу "Добро пожаловать на борт".

Ответ 3

У меня была бы такая же проблема при победе x64 7.

Решение (для меня):

1) Установите sqlite3

gem install sqlite3

2) Проверьте установленную версию

список драгоценных камней 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

Ответ 4

В моем случае это ошибка "Specified 'sqlite3' for database adapter, but the gem is not loaded. Add gem 'sqlite3' to your Gemfile." сообщение появилось, когда я запустил rails server сразу после того, как сгенерировал свежее приложение rails. Это было с Rails версии 4.1.16 (Ruby версии 2.3.1)

gem 'sqlite3', '~> 1.3.0'

Эта строка в Gemfile удаляет сообщение об ошибке. Я думаю, что новый sqlite gem (версия 1.4) конфликтует со старыми rails (версия 4.1), но я не видел связанных с ними проблем в их хранилище Github. Я добавляю этот ответ сюда, потому что он может помочь любому, кто испытывает ту же ситуацию, в которой я нахожусь.

Ответ 5

  • Не создавайте другую глобальную базу данных, а затем создавайте 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

Ответ 6

Для меня это помогло поставить версию после gem 'sqlite3' в gemfile, поэтому она стала gem 'sqlite3', '1.3.7'. Раньше я пытался скомпилировать sqlite3, обновленный gem и т.д. Rails не смог "принять" его до сих пор, поэтому окончательное определение версии помогло.

Ответ 7

у меня работает sudo apt-get установить libsqlite3-dev

Ответ 8

Запустите команды в следующем порядке

sudo apt-get install libsqlite3-dev

sudo gem install sqlite3-ruby

gem list

После этой команды вы увидите следующие версии sqlite

sqlite3 (1.3.12)

sqlite3-ruby (1.3.3)

Ответ 9

Еще одно потенциальное решение найдено в этом посте

У меня уже был установлен sqlite, но, по-видимому, с 4 февраля 2019 года возникла проблема с гемом sqlite3 v1.4.0.

Тем временем вы можете вернуться к v1.3.6, добавив эту версию в строку "sqlite3" в вашем Gemfile, например:

gem 'sqlite3', '~> 1.3.6'

Надеюсь, это сэкономит кому-то время!

Ответ 10

Просто добавьте эту строку в свой Gemfile, который находится в корневой папке вашего приложения

  gem 'sqlite3'

Ответ 11

Одна маленькая, но важная сторона для всех, кто сталкивается с этой ошибкой. До версии 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 для меня).