2015-10-13 63 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

相关问题