2015-10-13 64 views
1

我有一個在string.rb中定義的方法,遵循我在這個網站上看到的規則。看起來應用程序會看到該方法,因爲它在調用時不會發生錯誤。它似乎每次都會返回true。我知道,根據輸出數據,它應該返回false。幫幫我?如何在Rails的字符串類中定義布爾方法?

class String 
    # Returns true or false if the string has useful data 
    def useful? 
    if self.nil? 
     false 
    elsif self.blank? 
     false 
    elsif self.empty? 
     false 
    elsif self == "unknown" 
     false 
    elsif self == "NA" 
     false 
    elsif self == "N/A" 
     false 
    else 
     true 
    end 
    end 
end 
+1

什麼是數據被測試?另外,如果你知道哪個條件返回了實際的「false」,這將有所幫助。嘗試在每個「false」之前放置'puts'以查看哪行匹配字符串 –

+0

目前有幾條數據調用它。其中兩個是數據庫中的空字段,我認爲應該在「無? (如果不是,那麼他們至少應該抓住空白?或空的?),另一個是字符串「未知」,這也應該抓住。 – unclesol

+0

Aaaand它剛剛開始工作。我在頁面中添加了另一種方法來完成一些完全無關的事情,並且它剛開始工作。我不知道爲什麼。喜歡學習新的語言。 – unclesol

回答

2

根據您對該問題的評論,似乎問題在於rails會識別您對該方法所做的更改,而不是該方法本身的問題。你懂的。這裏有更多關於如何重新加載源碼的信息。

當Rails服務器在開發環境中運行時,它會在檢測到您已更改代碼時重新加載自身 - 因此您不必重新啓動服務器即可查看所做更改的效果。它檢查是否有任何文件已被更改,清除對這些文件的依賴關係,然後重新加載,就像剛啓動服務器一樣。

但我無法解釋爲什麼它不會自動重新加載你的string.rb文件。

對於你的好奇心的緣故,這裏是一個非常詳細的博客張貼有關如何rails reloads your source code in development

相關問題