0

このメソッドを使用しようとしています(その要点は で使用self.method_nameされ、ビューのFunnyHelperように呼び出されFunnyHelper.method_nameます)。

ただし、これは少なくともいくつかの問題を引き起こします -h()や名前付きルートなどのビュー メソッドが壊れます (モジュール メソッドでは問題def method_nameありませんが、クラス メソッド内では問題ありませんdef self.method_name)

def self.method_name明らかに、バックをdef method_name;にドロップすることでこれを回避できます。ケーキを食べて食べる方法について何か提案がある人はいますか?

4

1 に答える 1

1

本当にこれを行いたい場合は、使用できます

include ActionController::UrlWriter

名前付きルートへのアクセスを取得し、

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

他のビュー ヘルパー用。しかし、私はそれをお勧めしません。私の意見では、ここで thinkobt が提案している設計パターンは最悪であり、明示的ではないという彼らの不満にもかかわらず、ヘルパー :blogs を使用するだけです。それは本当です...しかし、Railsは一般的に、特にRailsのこの部分は完全に「明示的ではない」方法で設計されているため、それと戦おうとすると、価値があるよりも多くの問題が発生します.発見。

于 2009-05-08T18:58:54.863 に答える