Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails-“;添加';gemsqlite3'';到您的Gemfile";_Ruby On Rails_Ruby_Sqlite_Ruby On Rails 4_Ruby 2.0 - Fatal编程技术网

Ruby on rails RubyonRails-“;添加';gemsqlite3'';到您的Gemfile";

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教程,但是当它说在blog目录中键入
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'