Проверка значения атрибута объекта 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
Проверка значения атрибута объекта ActiveRecord. Об этом узнал как-то довольно случайно, т.к. до сих пор документация Ruby on Rails оставляет желать лучшего (об этом я уже писал) - найдешь только то, о чем уже знаешь или хотя бы догадываешься.
Вполне логичен код:
громозко, не правда ли...
но, оказывается, есть более элегантное решение:
String, Text - проверяет, чтобы значение присутствовало, т.е. не nil, и было не пустым
Integer, Float - не nil и не равно 0
Boolean - ну тут все понятно - true или false
Date - не работает:
undefined method 'to_i'
, но с Date прекрасно работает просто проверкаif obj.attr