2015-10-13 2 views
1

У меня есть метод, определенный в string.rb, следуя правилам, которые я видел здесь на этом сайте. Похоже, что приложение видит этот метод, потому что он не вызывает ошибки при его вызове. Кажется, это всегда возвращается к истине каждый раз. Я знаю, исходя из выходных данных, что он должен возвращать 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'. Попробуйте положить 'puts' перед каждым' false', чтобы увидеть, какая строка соответствует строке –

+0

В данный момент есть несколько данных. Два из которых являются нулевыми полями в базе данных, которые, как я полагаю, должны улавливаться под «nil?». (Если нет, то они должны, по крайней мере, поймать под пустым? Или пустым?), А другая - строка «unknown», которая также должна улавливаться. – unclesol

+0

Aaaand он только начал работать. Я добавил еще один способ на страницу, чтобы сделать что-то совершенно не связанное, и он только начал работать. Понятия не имею почему. Должен любить изучать новые языки. – unclesol

ответ

2

на основе ваших комментариев по этому вопросу, кажется, что речь идет рельсы, распознающие изменения, внесенные в метод, а не проблемы с самим методом. Ты знаешь что. Вот еще информация о том, как reils перезагружает источник.

Когда сервер рельсов работает в среде разработки, он перезагружается, когда обнаруживает, что вы изменили код, поэтому вам не нужно перезапускать сервер, чтобы увидеть эффект внесенных изменений. Он проверяет, были ли какие-либо файлы изменены, очищает зависимости от этих файлов, которые затем перезагружаются, как если бы вы только что запустили сервер.

Я не могу объяснить, почему он не перезагрузит файл string.rb автоматически.

Ради вашего любопытства, здесь очень подробный блог о том, как rails reloads your source code in development

Смежные вопросы