0

私のプロジェクトでは、いくつかのカスタム液体タグを使用しており、「lib」ディレクトリ内に「Liquid」というフォルダを作成しました。そこには、ヘルパーという液体モジュールがあります。

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")

しかし、次のエラーが発生します

':初期化されていない定数Liquid :: Helpers(NameError)

私がここで欠けているもの、誰かが私を助けることができます、事前に感謝します

乾杯

sameera

アップデート -

私はUbuntuでRails3を使用しています。以下は私の完全なエラーコードです

`<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>'
4

1 に答える 1

0

私はまだ明確な質問をするのに十分なレベルではありませんが、最初のアドバイスは、次の方法で質問を明確にすることです (質問をどこにでも投稿するためのこの堅実なアドバイスを検討してください)。

  • 使用している Rails、Liquid、Gems、Ruby などのバージョンをリストします (特に Rails のバージョン)。

  • エラーメッセージが発生している端末の出力全体をコピーして貼り付けます。その出力を理解できないかもしれませんが、他の誰かがあなたの状況をデバッグするのに役立ちます。端末からコピーして貼り付ける (実行したコマンドを含む) と、問題はありません。

  • ファイル構造に関するより良い情報を提供します。ここでも端末のコピー&ペーストは完璧です。Rails ルートから、コマンドを実行できますfind lib(Windows を使用している場合を除きます。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$ 

... すべてが 1 つの端末に。

于 2010-12-10T17:09:37.343 に答える