红宝石中的自我关键字

时间:2012-12-06 08:51:15

标签: ruby

我在Ruby中定义了一个函数,如下所示:

def is_fdi?
 self.get_fed_state =~ /fdi/i ? true : false
end

这里is_fdi?是一个返回布尔值的函数。据我所知self.get_fed_state是函数调用,其返回值与/fd1/i进行比较,但get_fed_state未在文件中定义。

有没有人知道is_fdi?如何调用get_fed_state?或者,有什么我应该知道来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

调用方法。如果你得到一个NoMethodError: undefined method它实际上没有被定义。如果它运行,则定义它。可能是它在项目使用的外部包中定义,而不是在实际的代码库中定义。

你也可以像这样缩短它:

def is_fdi?
 !!get_fed_state[/fdi/i]
end