Ruby on rails RubyonRails-“;添加';gemsqlite3'';到您的Gemfile";
我正在学习Rails教程,但是当它说在blog目录中键入Ruby on rails RubyonRails-“;添加';gemsqlite3'';到您的Gemfile";,ruby-on-rails,ruby,sqlite,ruby-on-rails-4,ruby-2.0,Ruby On Rails,Ruby,Sqlite,Ruby On Rails 4,Ruby 2.0,我正在学习Rails教程,但是当它说在blog目录中键入Rails服务器时,我被卡住了。它说 为数据库适配器指定了“sqlite3”,但未加载gem。将gem'sqlite3'添加到gem文件中 我退出了服务器,安装了sqlite3,恢复了服务器,结果又收到了这条消息。当我执行gem list时,sqlite3不会显示,但我确实看到了根Ruby目录中的文件夹 如何修复此错误 我使用的是Ruby 2.0、Rails 4.0、sqlite3 1.3.7。只需将这一行添加到应用程序根文件夹中的Gemf
Rails服务器时,我被卡住了。它说
为数据库适配器指定了“sqlite3”,但未加载gem。将gem'sqlite3'
添加到gem文件中
我退出了服务器,安装了sqlite3,恢复了服务器,结果又收到了这条消息。当我执行gem list
时,sqlite3不会显示,但我确实看到了根Ruby目录中的文件夹
如何修复此错误
我使用的是Ruby 2.0、Rails 4.0、sqlite3 1.3.7。只需将这一行添加到应用程序根文件夹中的Gemfile中即可
gem 'sqlite3'
即使在确认我的gemfile具有gem'sqlite3'
之后,我还是在问题中指定的相同版本的Ruby/Rails/SQLite中出现了此错误。我不知道你有什么操作系统(这就是你可能被否决的原因),但我使用的是Windows7x64
为了在Rails应用程序中安装gem,我需要编辑Gemfile.lock文件,将sqlite3(1.3.7-x86-mingw32)
替换为sqlite3(1.3.7)
然后,在运行bundle安装之后,我终于在输出中看到了
Using sqlite3 (1.3.7)
运行rails服务器后,我(终于)看到了“欢迎加入”页面。问题解决了
事实证明,这是几个不同的问题:
正如rubyonrails.org的入门指南中所述,我以前忽略了需要安装sqlite3才能运行。该指南给了我一个指向sqlite.com的链接,我需要从中下载命令shell和dll,它们都在“Windows预编译二进制文件”下。下面将对此进行详细介绍
gem安装给了我一个错误,说明它无法从rubygems.org下载任何东西。事实证明,有一个新版本的rubygems我不知道。修正了gem更新——系统
我尝试了gem安装sqlite3--platform=ruby,但没有成功。它无法构建本机扩展,也找不到sqlite3.h
我也在ruby论坛上问过我的问题。
这里,一位Joel Pearson(大师)通过附件提供了我需要的缺失文件,因为sqlite.com中没有提供这些文件。我按照他的指示做了,包括把shell和dll文件放在我的根Ruby的bin目录中……它成功了
因此,基本上,我可以在不修改任何Gemfile或Gemfile.lock的情况下安装sqlite3。我的gem列表显示sqlite3(1.3.7),Rails的欢迎屏幕现在显示为Getting Started guide!
我使用Windows 7-64位、Ruby 2.0、Rails 4.0,现在我得到了sqlite3 1.3.7
非常感谢各位给予本n00b的建议和指导。我发现在研究了Gemfiles和我的根Ruby目录之后,我了解了Ruby和Rails如何更好地适合我的计算机
作为初学者,我建议能够在rubyonrails.org的入门指南和sqlite.com上下载在Windows上安装它所需的sqlite3文件和文件夹
再次感谢!
Hewhocome对我来说,它帮助我将版本放在gemfile中的gem'sqlite3'
之后,所以它变成了gem'sqlite3',1.3.7'
。
以前我试着编译sqlite3,更新gem等等。。。Rails仍然无法“接受”它,因此最终定义版本很有帮助。我想在x64 win 7上也会遇到同样的问题
解决方案(对我而言):
1) 安装sqlite3
gem安装sqlite3
2) 检查已安装的版本
宝石清单sqlite3
它给了我:sqlite3(1.3.8x64-mingw32)
3) 修改Gemfile.lock文件
我将“sqlite3(1.3.8-x86-mingw32)”更改为“sqlite3(1.3.8-x64-mingw32”)
它可以工作:)注意,您需要在Gemfile.lock中的版本号和x64之间添加一个“-”
Xmass
不要将另一个数据库设置为全局数据库,然后将sqlite3设置为特定于gem文件上的环境
使用以前的宝石
确保运行捆绑安装
,然后运行捆绑更新
,最后运行捆绑安装
您的Gemfile
可能包含以下条目:
group :development, :production do
gem 'pg', '0.15.1'
end
group :test do
gem 'sqlite3', '1.3.6'
end
对于任何遇到此错误的人来说,这是一个很小但很重要的补充说明。在版本1.4之前,Bundler无法理解Windows()上的64位gems,这解释了为什么32位版本显示在Gemfile.lock中
手动更改:
“sqlite3(1.3.8-x86-mingw32”到“sqlite3(1.3.8-x64-mingw32)”
如果您使用的是旧版本的bundler,则可以正常工作。如果您升级,bundler现在应该能够自动解决问题(1.5.2目前适用于我)。适用于我sudo apt get install libsqlite3 dev按以下顺序运行命令
sudo apt get安装libsqlite3 dev
sudogem安装sqlite3ruby
gem列表
执行此命令后,您将看到以下版本的sqlite
sqlite3(1.3.12)
Sqlite3Ruby(1.3.3)在我的例子中,此错误“为数据库适配器指定了'sqlite3',但没有加载gem。将gem'sqlite3'添加到您的gem文件中。”
消息显示,当我在生成新的rails应用程序后立即运行rails服务器时。
是rails版本4.1.16(ruby版本2.3.1)
Gemfile中的这一行删除了错误消息。我认为新的sqlite gem(版本1.4)与旧的rails(版本4.1)存在冲突,但我在他们的Github存储库中没有发现任何相关问题。我在这里添加此答案,因为它可能会帮助任何遇到我所处的相同情况的人。在上找到另一个可能的解决方案
我已经安装了sqlite,但显然从2019年2月4日起,SQLite3v1.4.0gem就出现了问题
同时,通过将该版本添加到GEM文件中的“sqlite3”行,您可以退回到v1.3.6,如下所示:
gem 'sqlite3', '~> 1.3.6'
希望
gem 'sqlite3', '~> 1.3.6'