Ruby on Rails – “向你的Gemfile添加’gem sqlite3””
我是Rails的完整n00b,只有Ruby的初学者知识。 在我真正学习Rails之前,我计划更多地研究Ruby,但我对自己的好处太过好奇。
无论如何,我正在按照教程,但当它说在博客目录中键入“rails server”时我卡住了。 它声明,“为数据库适配器指定了’sqlite3’,但没有加载gem 'sqlite3'
。将gem’sqlite3 gem 'sqlite3'
添加到你的Gemfile中。” 所以我退出了服务器,安装了sqlite3,恢复了服务器…只是为了再次收到此消息。 当我执行“gem list”时sqlite3没有显示,但我确实在我的Root Ruby目录中看到了该文件夹。
如果它有帮助,我得到Ruby 2.0,Rails 4.0,sqlite3 1.3.7
我很抱歉,如果已经在其他地方回答了这个问题,但是我无法在庞大的数据库中找到任何有关stackoverflow的内容。 如果您愿意提供任何耐心,我将不胜感激。
非常感谢你! hewhocomes
我在你的问题中指定的相同版本的Ruby / Rails / SQLite中出现此错误,即使在确认我的gemfile有gem’sqlite3 gem 'sqlite3'
。 我不知道你有什么操作系统(这可能是你被投票的原因)但我使用的是Windows 7 x64。
为了在我的Rails应用程序中安装gem,我需要编辑Gemfile.lock文件以用sqlite3 (1.3.7-x86-mingw32)
替换sqlite3 (1.3.7-x86-mingw32)
sqlite3 (1.3.7)
然后,在运行bundle install之后我终于在输出中看到了
Using sqlite3 (1.3.7)
运行rails服务器后,我(最后)看到“欢迎登陆”页面。
我在x64 win 7上遇到了同样的问题。
解决方案(对我来说):
1)安装sqlite3
gem install sqlite3
2)检查已安装的版本
gem列表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
- 不要创建另一个全局数据库,然后使特定于gem文件环境的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
问题解决了!
事实certificate,这是几个不同的问题:
-
我之前忽略了需要安装sqlite3才能运行,如rubyonrails.org的入门指南中所述。 该指南给了我一个sqlite.com的链接,我需要从中下载命令shell和dll,两者都在“Windows的预编译二进制文件”下。 更多关于此的信息。
-
gem install给了我一个错误,声明它无法从rubygems.org下载任何东西。 事实certificate,我不知道有一个新版本的rubygems。 修复了gem update –system。
-
我试过gem install sqlite3 –platform = ruby,但无济于事。 它无法构建本机扩展,也无法找到sqlite3.h。
-
我曾在ruby-forums上问过我的问题。 http://www.ruby-forum.com/topic/4415126在这里,Joel Pearson(virtuoso)通过附件提供了我需要的丢失文件,因为sqlite.com中没有提供这些文件。 我按照他的指示,包括将shell和dll文件放在我的根目录Ruby的bin目录中……它工作正常!
基本上,我能够在不修改任何Gemfile或Gemfile.lock的情况下安装sqlite3。 我的gem列表显示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
对我来说,它有助于将gem 'sqlite3'
之后的版本放在gemfile中,因此它变成了gem’sqlite3 gem 'sqlite3', '1.3.7'
。 以前我试图编译sqlite3,更新gem等… Rails无法“接受”它仍然,所以最终定义版本帮助。
只需将此行添加到Gemfile中,该文件位于应用程序的根文件夹中
gem 'sqlite3'
对于遇到此错误的任何人来说,这是一个小而重要的旁注。 在1.4版之前,Bundler无法理解Windows上的64位gem( https://github.com/bundler/bundler/issues/2658 ),这解释了为什么32位版本出现在Gemfile.lock中。
手动更改:
"sqlite3 (1.3.8-x86-mingw32" to "sqlite3 (1.3.8-x64-mingw32)"
如果您使用旧版本的bundler,则可以正常工作。 如果升级,Bundler应该能够自动解决问题(1.5.2目前适用于我)。
为我工作sudo apt-get install libsqlite3-dev