为什么我的导轨4辅助工作不起作用?

时间:2013-07-27 10:44:23

标签: ruby-on-rails ruby-on-rails-4 self view-helpers

我的主页有一个辅助模块,有两个方法可以做同样的事情:

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吗?

我做错了什么?我希望使用.符号的第二种调用方法也可以工作。我该怎么做?

1 个答案:

答案 0 :(得分:2)

这不起作用,因为你没有扩展tweet.text所属的类。如果要扩展某个类,可以使用ActiveSupport::Concern。你现在正在做的是提供一些可以用参数调用的方法。

//我在这里发布了一个示例:https://stackoverflow.com/a/8504448/1001324