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

  • FND Films

    FND Films

    2 Mayıs 2006
  • hytchme

    hytchme

    9 Mart 2014
  • Marissah Simonini

    Marissah Sim

    25 HAZİRAN 2013