【发布时间】:2013-09-13 09:49:48
【问题描述】:
所以我遇到的一个相当常见的模式是这样的:
[:offer, :message].include? message.message_type
那里的措辞倒置让我很困惑。所以我专门为Symbol写了这个小猴子补丁。
def in? *scope
scope.include? self
end
所以现在我可以这样做:
message.message_type.in? :offer, :message
这很好用,我很满意,但有时我需要为其他对象提供类似的功能。 Rails 应用程序中的模型对象是最常见的情况,但偶尔会出现字符串等。
如果我将它直接修补到 Object 中,我会遇到什么样的问题?
【问题讨论】:
-
Rails 实际上包含具有这个确切名称的方法,
.in? -
我看过,但从未找到过这样的东西。你能链接文档吗?
-
修补
Object或Symbol似乎是在自找麻烦,尤其是使用这么短的名称。 -
@tadman:activesupport 成功了。 :)
标签: ruby-on-rails ruby monkeypatching