2015-04-06 57 views
1

我剛剛從另一臺計算機下載rails項目。我在我的PC上安裝了RubyMine,Rails,Ruby,DevKit,SQLite3(適用於windows的最新版本)。我已經通過控制檯安裝了所有gemfiles。當我從控制檯運行任何rake命令時,它拋出我這個錯誤:Rails,耙db:migrate讓我無法加載這樣的文件 - sqlite3/sqlite3_native錯誤

D:\SINOD\Programs\RUBY\Ruby_Projects\attendance\bin\rails 
Error:D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require': Could not load 'active_record/connection_adapters/sqlite3_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql', 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile. (LoadError) 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `block in require' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:175:in `spec' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:50:in `establish_connection' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/railtie.rb:120:in `block (2 levels) in <class:Railtie>' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:28:in `block in on_load' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:27:in `each' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:27:in `on_load' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/railtie.rb:116:in `block in <class:Railtie>' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/initializable.rb:30:in `instance_exec' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0 /gems/railties-4.2.0/lib/rails/initializable.rb:30:in `run' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/initializable.rb:55:in `block in run_initializers' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:345:in `each' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:345:in `call' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/initializable.rb:54:in `run_initializers' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/application.rb:352:in `initialize!' 
Error: from D:/SINOD/Programs/RUBY/Ruby_Projects/attendance/config/environment.rb:5:in `<top (required)>' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `block in require' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/application.rb:328:in `require_environment!' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:142:in `require_application_and_environment!' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:128:in `generate_or_destroy' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:50:in `generate' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
Error: from D:/SINOD/Programs/RUBY/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>' 
Error: from D:/SINOD/Programs/RUBY/Ruby_Projects/attendance/bin/rails:4:in `require' 
    Error: from D:/SINOD/Programs/RUBY/Ruby_Projects/attendance/bin/rails:4:in `<main>' 

回答

0

仔細閱讀錯誤。它指出:

Could not load 'active_record/connection_adapters/sqlite3_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql', 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile. (LoadError)

這清楚地顯示您的應用程序配置不正確。

正如你所提到的「我剛剛從另一臺電腦下載了rails項目」,也有可能你沒有安裝Gems。

假設Ruby和捆綁器安裝在您的計算機,請按照下列步驟操作:

一旦你完成了這一切:

找到你的sqlite3 gemspec文件。一個例子是

C:\Ruby21\lib\ruby\gems\2.1.0\specifications 

您應該根據您的Rubygem路徑和sqlite3版本進行調整。編輯上面的文件,查找下面一行

s.require_paths=["lib"] 

改變它

s.require_paths= ["lib/sqlite3_native"] 

參考:https://stackoverflow.com/a/17762417/3035830

+0

我已經完成了所有這些事情。捆綁安裝後,它給了我:'不能加載這樣的文件00sqlite3/sqlite3_native' – zxcdsa980 2015-04-06 07:03:06

+0

@ zxcdsa980我已經更新了我的答案。請讓我知道這是否解決了問題 – shivam 2015-04-06 07:07:34

+0

我發現2個文件與sqlite3'sqlite3-1.3.10-x64-mingw32'和'sqlite3-ruby-1.3.3'同時將'[「lib」]'改爲'[[ 「LIB/sqlite3_native」]'。仍然拋出我這個錯誤。 – zxcdsa980 2015-04-06 07:12:25

0

我不知道其中的變化發生了,我找不到任何關於它的文檔,但似乎在Ruby 2.2中,安裝了本機擴展的gem的方式已經發生了變化,現在他們應該在其gem包中提供預編譯的二進制文件。在以前的ruby版本中,如果你安裝了rdevkit,那麼本地擴展通常可以在本地構建(只有一些例外,如mysql)。

我有這個相同的問題,並通過卸載ruby 2.2和安裝ruby 2.1(與rubyinstaller)解決它。稍後當大多數寶石支持它時,我會回來嘗試2.2。

相關問題