1

同じことを行う 2 つのメソッドを含む、ホームページ用のヘルパー モジュールがあります。

module HomeHelper
    def parsed_text(tweet)
        auto_link (tweet).gsub(/(@\w+)/, %Q{<a href="http://twitter.com/\\1">\\1</a>})
    end
    def other_parsed_text
        self.auto_link.gsub(/(@\w+)/, %Q{<a href="http://twitter.com/\\1">\\1</a>})
    end
end

私の見解では、これは機能します:

<%= parsed_text(tweet.text) %>

しかし、これはしません:

<%= tweet.text.other_parsed_text %>

を取得しNoMethodError at / undefined method other_parsed_textます。selfメソッドの呼び出し元はヘルパー メソッド内にありませんか?

私は何を間違っていますか?.表記法を使用してメソッドを呼び出す 2 番目のスタイルも機能するようにしたいと考えています。それ、どうやったら出来るの?

4

1 に答える 1

2

のクラスを拡張しなかったため、これは機能しませんtweet.text。クラスを拡張したい場合は、ActiveSupport::Concernを使用できます。現在行っていることは、パラメーターで呼び出すことができるいくつかのメソッドを提供することです。

// ここに例を投稿しました: https://stackoverflow.com/a/8504448/1001324

于 2013-07-27T10:57:43.457 に答える