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

  • eHow

    eHow

    27 NİSAN 2006
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • SerienTrailerMP

    SerienTraile

    7 HAZİRAN 2012