Проверка значения атрибута объекта ActiveRecord
Проверка значения атрибута объекта ActiveRecord. Об этом узнал как-то довольно случайно, т.к. до сих пор документация Ruby on Rails оставляет желать лучшего (об этом я уже писал) - найдешь только то, о чем уже знаешь или хотя бы догадываешься.
Вполне логичен код:
# obj - объект класса, наследуемого от ActiveRecord::Base if ! obj.attr.nil? && ! obj.attr.blank? ... end # дабы не подвергнуться гневу гуру Ruby ;-) # более лаконичный вариант: if obj.attr && ! obj.attr.blank? ... end
громозко, не правда ли...
но, оказывается, есть более элегантное решение:
if obj.attr? ... end
String, Text - проверяет, чтобы значение присутствовало, т.е. не nil, и было не пустым
Integer, Float - не nil и не равно 0
Boolean - ну тут все понятно - true или false
Date - не работает: undefined method 'to_i'
, но с Date прекрасно работает просто проверка if obj.attr