我的主页有一个辅助模块,有两个方法可以做同样的事情:
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
吗?
我做错了什么?我希望使用.
符号的第二种调用方法也可以工作。我该怎么做?
答案 0 :(得分:2)
这不起作用,因为你没有扩展tweet.text
所属的类。如果要扩展某个类,可以使用ActiveSupport::Concern。你现在正在做的是提供一些可以用参数调用的方法。
//我在这里发布了一个示例:https://stackoverflow.com/a/8504448/1001324