Często muszę sprawdzić, czy jakaś wartość jest pusta i napisać „Brak danych” w ten sposób:
@user.address.blank? ? "We don't know user's address" : @user.address
A kiedy mamy około 20-30 pól, które musimy przetworzyć w ten sposób, robi się brzydko.
To, co zrobiłem, to rozszerzona klasa String z ormetodą
class String
def or(what)
self.strip.blank? ? what : self
end
end
@user.address.or("We don't know user's address")
Teraz wygląda lepiej. Ale nadal jest surowy i szorstki
Jak byłoby lepiej rozwiązać mój problem. Może lepiej byłoby rozszerzyć ActiveSupport classlub użyć metody pomocniczej, mixinów lub czegokolwiek innego. Co może mi powiedzieć idealogia ruby, twoje doświadczenie i najlepsze praktyki.