def self.is_animal_color_correct?(animal, color)
AnimalColor.find_by_animal_and_color(animal.downcase, color.downcase)
end
В Ruby идиотично использовать nil
и false
в качестве неверных значений и реальных значений (при их наличии) для истинных.С вашим if/else
вы активно отбрасываете информацию, которая может быть полезна где-то еще, и делаете больше работы в процессе.
Если вы действительно действительно хотите, чтобы ваш метод возвращал только true
или false
Вы могли бы:
def self.is_animal_color_correct?(animal, color)
!!AnimalColor.find_by_animal_and_color(animal.downcase, color.downcase)
end
Но, опять же, это не идиоматичный Ruby, и я не рекомендую его.