Ruby on Rails - "向你的Gemfile添加'gem sqlite3''"

hew*_*mes 21 ruby sqlite ruby-on-rails ruby-2.0 ruby-on-rails-4

我是Rails的完整n00b,只有Ruby的初学者知识.在我真正学习Rails之前,我计划更多地学习Ruby,但我对自己的好处太过好奇.

无论如何,我正在按照教程,但当它说在博客目录中键入"rails server"时我卡住了.它声明,"为数据库适配器指定了'sqlite3',但没有加载gem.添加gem 'sqlite3'到你的Gemfile." 所以我退出服务器,安装了sqlite3,恢复了服务器......只是为了再次收到此消息.当我执行"gem list"时,sqlite3不显示,但我确实在我的Root Ruby目录中看到了该文件夹.

如果它有帮助,我得到Ruby 2.0,Rails 4.0,sqlite3 1.3.7

我很抱歉,如果已经在其他地方回答了这个问题,但我在庞大的数据库中找不到任何有关stackoverflow的内容.如果您愿意提供任何耐心,我将不胜感激.

非常感谢你!hewhocomes

Pau*_*aul 21

我在你的问题中指定的相同版本的Ruby/Rails/SQLite中出现此错误,即使在确认我的gemfile已经确认之后 gem 'sqlite3'.我不知道你有什么操作系统(这可能是你被投票的原因)但我使用的是Windows 7 x64.

为了得到安装在我的Rails应用程序的宝石,我需要编辑Gemfile.lock的文件替换sqlite3 (1.3.7-x86-mingw32)sqlite3 (1.3.7)

然后,在运行bundle install之后我终于在输出中看到了

Using sqlite3 (1.3.7)
Run Code Online (Sandbox Code Playgroud)

运行rails服务器后,我(最后)看到"欢迎登陆"页面.


kan*_*kyu 15

就我而言,"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'
Run Code Online (Sandbox Code Playgroud)

Gemfile中的这一行删除了错误消息。我认为新的sqlite宝石(1.4版)与旧的Rails(4.1版)存在冲突,但我在其Github存储库中没有看到任何相关问题。我在此处添加此答案,因为它可能会帮助遇到我所遇到的相同情况的任何人。

  • 我刚刚看到实际上有一个封闭的问题 https://github.com/sparklemotion/sqlite3-ruby/issues/247 (2认同)

小智 12

我在x64 win 7上遇到了同样的问题.

解决方案(对我来说):

1)安装sqlite3

gem install sqlite3

2)检查已安装的版本

宝石列表sqlite3

它给了我:sqlite3(1.3.8 x64-mingw32)

3)修改Gemfile.lock

我用'sqlite3(1.3.8-x64-mingw32)更改"sqlite3(1.3.8-x86-mingw32)"

它工作正常:)请注意,您需要在Gemfile.lock中的版本号和x64之间添加" - "

XMASS


gwa*_*ton 12

这篇文章中找到的另一个潜在解决方案

我已经安装了 sqlite,但显然自 2019 年 2 月 4 日起,sqlite3 v1.4.0 gem 出现问题。

同时,您可以通过将该版本添加到 Gemfile 中的“sqlite3”行来回退到 v1.3.6,如下所示:

gem 'sqlite3', '~> 1.3.6'
Run Code Online (Sandbox Code Playgroud)

希望这可以节省时间!


hew*_*mes 5

问题解决了!

原来,这是几个不同的问题:

  1. 如rubyonrails.org的《入门指南》所述,我以前忽略了必须安装sqlite3才能运行。该指南为我提供了一个指向sqlite.com的链接,我需要从该链接下载命令shell和dll,二者均位于“ Windows的预编译二进制文件”下。在下面的更多内容。

  2. gem install给我一个错误,表明它无法从rubygems.org下载任何内容。原来,有一个我不知道的新版本的红宝石。用gem update --system修复。

  3. 我尝试了gem install sqlite3 --platform = ruby​​,但无济于事。它无法构建本机扩展,也找不到sqlite3.h。

  4. 我也曾在红宝石论坛上问过我的问题。 http://www.ruby-forum.com/topic/4415126 在此,Joel Pearson(virtuoso)通过附件提供了我需要的丢失文件,因为sqlite.com中未提供这些文件。我按照他的指示进行了操作,包括将shell和dll文件放在我的Ruby根目录下的bin目录中,它确实起作用了!

因此,基本上,我能够在不修改任何Gemfile或Gemfile.lock的情况下安装sqlite3。我的宝石列表显示sqlite3(1.3.7),并且Rails的“欢迎”屏幕现在显示在“入门指南”中!我使用Windows 7-64位,Ruby 2.0,Rails 4.0,现在有了sqlite3 1.3.7。

非常感谢每个人提供此n00b建议和指导。我发现浏览了Gemfiles和我的Ruby根目录后,我了解到Ruby和Rails如何更好地适合我的计算机。

作为初学者,我建议能够在rubyonrails.org的《入门指南》和sqlite.com上下载将其安装在Windows上的sqlite3文件和文件夹。

再次感谢!hewhocomes


Les*_*nge 5

  1. 请勿使另一个数据库成为全局数据库,然后针对您的gem文件上的环境创建sqlite3。
  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
Run Code Online (Sandbox Code Playgroud)