2015-11-11 57 views
0

我是Ruby on Rails的新手,我想安裝Prawn Library。但運行gem install prawn失敗,我得到ttfunk requires ruby version 1.9.3。所以,我不得不添加寶石「大蝦」,「0.12.0」到Gemfile中,我注意到,有在我們的項目中沒有這樣的文件,所以我說這下:Ruby on Rails應用程序無法啓動:無需加載此文件--multi_json(MissingSourceFile)

source 'https://rubygems.org' 
gem 'rake', '0.8.7' 
gem 'rails', '2.3.5' 
gem 'prawn', '0.12.0' 

這是gem list

actionmailer (2.3.5) 
actionpack (2.3.5) 
activemodel (3.2.1) 
activerecord (2.3.5) 
activeresource (2.3.5) 
activesupport (2.3.5) 
afm (0.2.2) 
arel (3.0.1) 
Ascii85 (1.0.2) 
builder (3.0.0) 
bundler (1.0.22) 
daemon_controller (1.0.0) 
declarative_authorization (0.5.1) 
erubis (2.7.0) 
faraday (0.9.1) 
fastercsv (1.5.5) 
fastthread (1.0.7) 
git (1.2.9.1) 
hashery (2.1.1) 
hike (1.2.1) 
httpauth (0.2.1) 
i18n (0.4.2) 
journey (1.0.2) 
json (1.6.5) 
mail (2.4.1) 
mime-types (1.17.2) 
multi_json (1.8.2) 
multipart-post (2.0.0) 
mysql (2.9.1) 
nokogiri (1.5.6) 
oauth2 (0.6.1) 
passenger (3.0.11) 
pdf-reader (1.3.3) 
polyglot (0.3.3) 
prawn (0.12.0) 
prawn-core (0.6.3) 
rack (1.4.1, 1.0.1) 
rack-cache (1.1) 
rack-ssl (1.3.2) 
rack-test (0.6.1) 
rails (2.3.5) 
railties (3.2.1) 
rake (0.8.7) 
rdoc (3.12) 
ruby-progressbar (1.7.5) 
ruby-rc4 (0.1.5) 
rubygems-update (1.3.7) 
rush (0.6.8) 
searchlogic (2.5.19) 
session (3.2.0) 
sprockets (2.1.2) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10) 
ttfunk (1.0.3) 
tzinfo (0.3.31) 
validatable (1.6.7) 
vote_fu (0.0.11) 

所以你可以注意到multi_json是作爲一個gem安裝的。我嘗試卸載並重新安裝它,我也檢查了它的權限,並試圖重新啓動nginx服務器幾次,但沒有一個工作。我不能夠解決這個問題,我打開dependencies.rb文件,其中的錯誤點,我發現這一點:

def require(file, *extras) #:nodoc: 
    if Dependencies.load? 
     Dependencies.new_constants_in(Object) { super } 
    else 

#行58 super

end 
    rescue Exception => exception # errors from required file 
    exception.blame_file! file 
    raise 
    end 

請幫助我這個出。

更新:非常感謝MateuszCzerwiński我將gem 'multi_json', '~> 1.11', '>= 1.11.2'添加到我的gemfile並運行bundle install,並且第一個錯誤消失了。但現在我得到這個錯誤:

no such file to load -- i18n/backend/fallbacks (MissingSourceFile) 

我檢查了寶石列表,我有國際化(0.4.2)installed.I還檢查是否國際化/後端/ fallbacks.rb文件是存在的,而且我發現它在ruby/gems/1.8/gems/i18n-0.4.2/lib/i18n/backend下,並且我改變了它的權限。但仍然沒有奏效。

我將multi_json所需的gem從/ usr/local/lib/ruby​​複製到/ multi_json/ruby​​。這似乎解決了寶石的錯誤,但現在我有以下錯誤:

Error message: 
    uninitialized constant FedenaPlugin::Authorization 
Exception class: 
    NameError 

我不明白爲什麼所有這些錯誤在這裏,爲什麼安裝寶石使我的應用程序停止。我不明白最後的錯誤表明什麼。請通過這個裸露我,我非常感謝你的幫助。

回答

0

你有很多不必要的寶石,爲fedena這些都是寶石,你應該有:

actionmailer (2.3.5) 
actionpack (2.3.5) 
activerecord (2.3.5) 
activeresource (2.3.5) 
activesupport (2.3.5) 
Ascii85 (1.0.2) 
bundler (1.10.6, 1.0.22) 
daemon_controller (1.0.0) 
declarative_authorization (0.5.1) 
faraday (0.9.1) 
fastercsv (1.5.5) 
fastthread (1.0.7) 
git (1.2.9.1) 
hashery (2.1.1) 
httpauth (0.2.1) 
i18n (0.4.2) 
json (1.6.5) 
multi_json (1.11.2) 
multipart-post (2.0.0) 
mysql (2.9.1) 
nokogiri (1.5.6) 
oauth2 (0.6.1) 
passenger (3.0.11) 
rack (1.4.1, 1.0.1) 
rack-cache (1.1) 
rack-ssl (1.3.2) 
rack-test (0.6.1) 
rails (2.3.5) 
rake (0.8.7) 
rdoc (3.12) 
ruby-progressbar (1.7.5) 
ruby-rc4 (0.1.5) 
rush (0.6.8) 
searchlogic (2.5.19) 
session (3.2.0) 
tzinfo (0.3.31) 
validatable (1.6.7) 
vote_fu (0.0.11) 

所以卸載其他寶石,並且除了Gemfile中和Gemfile.lock的文件中刪除multi_json文件夾,並嘗試這個命令:

gem install prawn -v 0.6.3 

希望工程。

1

添加到您的Gemfile

gem 'multi_json', '~> 1.11', '>= 1.11.2' 

,然後執行bundle install。可能存在依賴關係問題,Gemfile中沒有足夠的寶石。

+0

非常感謝,我認爲它的工作,但現在我有這個錯誤:沒有這樣的文件加載 - i18n/backend/fallbacks(MissingSourceFile),你有任何想法如何解決這個問題? –

+0

我認爲這是同樣的問題,添加這個寶石https://github.com/svenfuchs/i18n。對你更好的是在你的控制檯中使用由'$ rails new app_gen'生成的默認gem。它可以在不久的將來幫助。 – MC2DX

相關問題