SORU
27 Ocak 2011, PERŞEMBE


Eğer string boş sonra bazı varsayılan değeri döndürür ise

Sık sık eğer bazı değerlerin boş olup olmadığını kontrol etmek istiyorum ve "veri" gibi . bugünkü yazma

@user.address.blank? ? "We don't know user's address" : @user.address

Ve bu şekilde faaliyet 20-30 alanları hakkında elimizde çok çirkin olur.

Ne yaptım ben or yöntemi ile genişletilmiş String sınıfı

class String
  def or(what)
    self.strip.blank? ? what : self
  end
end

@user.address.or("We don't know user's address")

Şimdi daha iyi görünüyor. Ama hala ham ve kaba

Daha sorunumu çözmek için ne kadar zor olacağını. Belki daha iyi ActiveSupport class genişletmek için bir yardımcı yöntem veya mixins veya başka bir şey kullanmak olacaktır. Ruby ideoloji, deneyim ve en iyi uygulamaları bana ne söyleyebilir ki.

CEVAP
27 Ocak 2011, PERŞEMBE


ActiveSupport present? (blank? tersi), ve nil eğer alıcısı yoksa döndüren tüm nesneler için presence bir yöntemi ekler.

Örnek:

host = config[:host].presence || 'localhost'

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GamingAndTech

    GamingAndTec

    16 NİSAN 2013
  • HBO

    HBO

    17 Mayıs 2006
  • TechBalance

    TechBalance

    12 HAZİRAN 2011