Thường thì tôi cần kiểm tra xem một số giá trị có trống không và viết rằng "Không có dữ liệu" như vậy:
@user.address.blank? ? "We don't know user's address" : @user.address
Và khi chúng ta có khoảng 20-30 trường mà chúng ta cần xử lý theo cách này, nó sẽ trở nên xấu xí.
Những gì tôi đã làm là mở rộng lớp String với or
phương thức
class String
def or(what)
self.strip.blank? ? what : self
end
end
@user.address.or("We don't know user's address")
Bây giờ nó trông đẹp hơn. Nhưng nó vẫn còn thô và thô
Làm thế nào nó sẽ tốt hơn để giải quyết vấn đề của tôi. Có lẽ sẽ tốt hơn nếu bạn mở rộng ActiveSupport class
hoặc sử dụng phương pháp trợ giúp hoặc mixin hoặc bất kỳ thứ gì khác. Những gì lý tưởng về ruby, kinh nghiệm của bạn và các phương pháp hay nhất có thể cho tôi biết.