Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Админка на Ruby on Rails

Проверка значения атрибута объекта 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