Ruby on rails rails sqlite适配器错误

Ruby on rails rails sqlite适配器错误,ruby-on-rails,ruby,sqlite,Ruby On Rails,Ruby,Sqlite,我正在按照中的说明操作,在尝试使用scaffold命令时被卡住了 运行时: rails generate scaffold User name:string email:string 我得到一个错误: C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb

我正在按照中的说明操作,在尝试使用scaffold命令时被卡住了

运行时:

rails generate scaffold User name:string email:string  
我得到一个错误:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.) (RuntimeError)
ERROR:  Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository
ERROR:  Possible alternatives: activerecord-jdbcsqlite3-adapter, activerecord-sqlserver-adapter, activerecord-nulldb-adapter, activerecord-spatialite-adapter, activerecord-simpledb-adapter
运行:

gem install activerecord-sqlite3-adapter
我得到了一个错误:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.) (RuntimeError)
ERROR:  Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository
ERROR:  Possible alternatives: activerecord-jdbcsqlite3-adapter, activerecord-sqlserver-adapter, activerecord-nulldb-adapter, activerecord-spatialite-adapter, activerecord-simpledb-adapter
我的文件如下所示:

source 'http://rubygems.org'
gem 'rails', '3.1.0'  
gem 'sqlite3', '1.3.3'  
...
我在Windows7x64操作系统上运行


有什么想法吗?

错误消息的重要部分是以下代码片段:

can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.
要解决这个问题,您应该始终通过
bundle exec
这样运行命令

bundle exec rails generate scaffold User name:string email:string 

这样,您就可以让bundler完全控制您的
$LOAD\u路径
,这可能会解决这些问题。

好的,我发现了问题。我注意到我的Rails安装同时包含SQLite 1.3.3和1.3.4,我将我的GEM文件更改为:

gem 'sqlite3', '1.3.3'
致:


这就解决了问题。感谢您将我指向中错误消息中的相关行。

建议的安装命令:

gem install activerecord-jdbc-sqlite3-adapter
gem install activerecord-jdbcsqlite3-adapter
实际安装命令:

gem install activerecord-jdbc-sqlite3-adapter
gem install activerecord-jdbcsqlite3-adapter
参考:

我也有这个错误,但我的问题略有不同。 问题是sqlite3 ruby已被弃用,将被sqlite3取代。在michael hartl的网络广播中,他仍然使用旧的sqlite3 ruby

我编辑了我的gemfile以使用sqlite 1.3.4而不是sqlite3 ruby 1.3.1。 重新运行包安装,瞧,问题解决了

而不是

gem install activerecord-sqlite3-adapter


同样在Rails教程中,运行:

  $ rake db:migrate
获取了以下错误:

请安装sqlite3适配器:gem安装 activerecord-sqlite3-adapter(sqlite3不是捆绑包的一部分。添加 将其保存到文件中。)

跑步:

$gem安装activerecord-sqlite3-adapter

得到:

错误:找不到有效的gem'activerecord-sqlite3-adapter'(>= 0)在任何存储库中

根据上述答案之一更改了文件:

gem'sqlite3','1.3.4'

出现另一个错误,因此必须安装:

$ gem install sqlite3 -v '1.3.4'
尝试再次运行$rake db:migrate,但出现了另一个错误,这一次类似于上面的答案:

请安装sqlite3适配器:
gem安装
activerecord-sqlite3-adapter
(无法激活sqlite3(~>1.3.5), 已激活sqlite3-1.3.4。请确保添加了所有依赖项 要归档。)

因此,将文件更改为:

gem'sqlite3','1.3.5'

并收到另一条错误消息,以确保“gem install sqlite3-v'1.3.5”成功(wtf?!再次确认)。已成功安装,已运行捆绑包安装

已尝试运行:

$ rake db:migrate
什么也没发生,所以尝试:

$ bundle exec rails generate scaffold User name:string email:string

根据上面的另一个建议。它终于成功了。教程警告说安装过程很费力,但我觉得我必须与至少5个人进行混搭。希望这能帮助下一个人

感谢@Holager exec没有解决问题,但您在错误消息中为我指出了相关行。这帮助我解决了这个问题,我添加了我的:gem'sqlite3'。这就为我解决了同样的问题:-)