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

  • placeboing

    placeboing

    7 Mart 2006
  • spederson7

    spederson7

    17 Temmuz 2006
  • TouchePro

    TouchePro

    27 EYLÜL 2007