2012-12-06 43 views
-6

我有這樣的紅寶石函數的定義:self關鍵字在紅寶石

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?或者,有什麼我應該知道來解決這個問題?

+2

'get_fed_state'可能** **被定義的地方,如果這個代碼工作。它是一個主動記錄模型嗎?而且,這個三元操作符是多餘的。你可以使用這個:http://pastie.org/5487838具有相同的效果 –

+0

@SergioTulentsev我已經檢查到處,這個get_fed_state沒有被定義anywhre。什麼是主動記錄模型? – Dude

+0

你從哪裏得到該代碼? –

回答

1

調用該方法。如果你得到一個NoMethodError: undefined method它實際上沒有定義。如果它運行,那麼它被定義。它可能是它在項目使用的外部包中定義的,而不是在實際的代碼庫中定義的。

您也可以縮短這樣的:

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