2009-05-08 9 views
0

this methodを使用しようとしています(その要点は、のFunnyHelperです)、ビューでFunnyHelper.method_nameと呼びます)。ヘルパー内で名前付きルートを使用する(ただしクラスメソッドを使用する)

は、しかし、これは問題の少なくともいくつ原因 - h()と名付けたルートなどの表示方法が壊れ取得を(彼らはではなく、任意のクラスメソッド​​内のモジュール方式def method_nameでOKです)。

明らかに私は​​をdef method_nameに戻すことでこれを避けることができます。どのように私は私のケーキを持ってそれを食べることができるかについての提案を誰もが?

答えて

1

あなた本当には、これを実行したい場合は、他のビューヘルパーのためのあなたの名前のルートへのアクセスと

# h is a private method 
ActionController::Base.helpers.send :h, "<" 

を取得するために

include ActionController::UrlWriter 

を使用することができます。しかし、私はそれをお勧めしません。私の意見では、thoughtobtがここで示唆しているデザインパターンはうんざりしていて、ヘルパーを使うだけです。それは本当ですが、一般的なRailsと特にRailsのこの部分は、完全に「非明示的」な方法で設計されていますので、それに対して闘うことは、価値があるよりも大きな問題になるでしょう。発見する。

関連する問題