2011-07-09 4 views
0

私の目標はapplication_helperにテンプレートで使用するメソッドのみを使用することです。それ以外の場合はapplication_helperが長くなります。レールはレイアウトのヘルパーをアプリケーションとは別のモジュールで移動します

私の問題は、接尾辞Helperに依存しています:

これは

# app/helpers 
module ApplicationHelper 
    include ApplicationLayout 
end 

# app/helpers/layouts 
module ApplicationLayout 
    def my_helper 
    puts 'my_helper!' 
    end 
end 

に動作します。これはエラーではありません

# app/helpers 
module ApplicationHelper 
    include ApplicationLayoutHelper 
end 

# app/helpers/layouts 
module ApplicationLayoutHelper 
    def my_helper 
    puts 'my_helper!' 
    end 
end 

ん:

Expected app/helpers/layouts/application_layout_helper.rb to define Layouts::ApplicationLayoutHelper 

だから、私が得る私の巣:

Routing Error undefined method `sub' for nil:NilClass 

実際に私が実装(あなたの意見を与える)app/helpers/layouts/application_helper.rbしたいのですが、私はこのケースを述べた単純化のためので、それは、同じエラーを与えます。

レイアウト用のヘルパーメソッドを抽出する方法に関する提案はありますか?私が使用できる設定よりも慣例がありますか?

答えて

0

まあありがとう、私はあなたが何を期待しようと、それはかなりまっすぐです:

helpers/layouts/application_layout_helper.rb

module Layouts 
    module ApplicationLayoutHelper 
    def my_helper 
     'my_helper!' 
    end 
    end 
end 

helpers/application_helper.rb

module ApplicationHelper 
    include Layouts::ApplicationLayoutHelper 
end 

に私の見解直接Iでの広告do:

<%= my_helper %> 

私はまだあなたがこれらの方法で何をするのか分かりません。

+0

はい、あなたは正しいです!なぜ私はそれを逃したのですか? - レイアウトモジュールのメソッドにテンプレートでアクセスすることはできますが、実際にはそこでは使用しないので、それらを分離して保存し、ファイルを小さく保ち、別々の概念を保持したいと思います。 - ありがとう – ecoologic

+0

gmaps4rails https://github.com/apneadiving/Gmaps4railsにもありがとう、私はそれをチェックしています! – ecoologic

関連する問題