2010-12-10 38 views
0

在我的項目我使用一些自定義的液體標籤和我創建了我「的lib」目錄內一個名爲「液體」文件夾,在那裏我有一個叫幫手液模塊,Rails的庫文件加載錯誤

module Liquid::Helpers 

end 

因此該項目樹如下

--> lib 

     --> Liquid 

而且我想在我的environment.rb文件中註冊我的標籤

Liquid::Template.register_filter(Liquid::Helpers) 

要在服務器啓動時載入我的lib文件,我在application.rb中

config.autoload_paths << File.join(Rails.root.to_s, "lib") 

嘗試這可是我發現了以下錯誤

「:未初始化的恆定的液體: :助手(NameError)

缺少什麼我在這裏,有人可以幫助我,在此先感謝

歡呼

sameera

更新 -

我在Rails3中使用Ubuntu。以下是我的全部錯誤代碼

`<top (required)>': uninitialized constant Liquid::Helpers (NameError) 
    from <project path>/config.ru:3:in `require' 
    from <project path>/config.ru:3:in `block in <main>' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize' 
    from <project path>/config.ru:1:in `new' 
    from <project path>/config.ru:1:in `<main>' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:35:in `eval' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:35:in `parse_file' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/server.rb:162:in `app' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/server.rb:248:in `wrapped_app' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/server.rb:213:in `start' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands/server.rb:65:in `start' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands.rb:30:in `block in <top (required)>' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands.rb:27:in `tap' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.0/lib/rails/commands.rb:27:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

回答

0

我不是一個足夠高的水平還沒有提出澄清的問題,但我的第一條建議是澄清你的問題通過以下方式(張貼任何考慮這個紮實的建議問題的任何地方):

  • 列表軌,液體,寶石,紅寶石等您正在使用(尤其是軌道版本)的版本

  • 複製粘貼終端的整個輸出,其中的錯誤信息正在出現。雖然您可能不瞭解該輸出,但對其他人調試您的情況很有用。從終端複製粘貼(包括您運行的命令)留下零問題

  • 提供有關您的文件結構的更好信息。終端複製粘貼再次完美。從你的rails根目錄下,你可以運行命令find lib(除非你在Windows上,在這種情況下你不能使用find,現在是時候考慮切換到OSX或者ubuntu了)。

這裏有一個終端複製粘貼,包括所有這些信息的一個例子:

dhcp-c-200:foo luke$ rails -v && gem -v && ruby -v && gem list | grep liquid 
Rails 2.3.5 
1.3.5 
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] 
dhcp-c-200:foo luke$ find lib 
lib 
lib/Liquid 
lib/Liquid/some_module_file.rb 
lib/tasks 
dhcp-c-200:foo luke$ script/server 
=> Booting Mongrel 
=> Rails 2.3.5 application starting on http://0.0.0.0:3000 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:440:in `load_missing_constant': uninitialized constant Liquid::Template (NameError) 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in `const_missing' 
    from /Users/luke/Sites/foo/config/environment.rb:43 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in' 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:84 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require' 
    from script/server:3 
dhcp-c-200:foo luke$ cat lib/Liquid/some_module_file.rb 
module Liquid 

end 

module Liquid::Foo 

enddhcp-c-200:foo luke$ 

...都在同一個終端。

+0

Hi @luke,謝謝指出,更新了這個問題:D – sameera207 2010-12-10 17:27:19