SORU
5 Mart 2012, PAZARTESİ


Raylar .vs .bul

Model.where yöntem her zaman ise Model.find gibi yöntemi yok tek bir sonuç varsa bile bir dizi döndürür fark ettim. Bunun için herhangi bir sebep var mı? Model.where 3 Raylar beri tercih edilen bir işlevi olduğunu düşündüm.X.

Tek bir sonuç bekliyorum Model.find kullanarak gerektiğine ve birden fazla sonuç bekliyorum Model.where?

CEVAP
5 Mart 2012, PAZARTESİ


  • where ActiveRecord::Relation (biri gibi davranmasına rağmen bir dizi değil) döndürürtoplamamodel nesneleri. Eğer hiçbir şey şartlara uyuyorsa, bu sadece boş bir ilişki verir.

  • find (find_by_columnname ilgili, dinamik yöntemleri) verirtekmodeli nesne. Eğer bir şey bulunursa, ActiveRecord::RecordNotFound bir istisna (ama find_by_ dinamik yöntemlerle) ortaya çıkar.

    find kayıt—kimlik İlişkisi—eğer belirli bir liste, bir Dizi dönüş yapabiliyorken, where kullanarak Raylar 3 nedeniyle tercih edilmektedir. find birçok benzer kullanır şimdi deprecated or gone entirely.

Sadece tek bir nesne bekliyoruz istiyorsanız yani Evet,, find kullanarak başka Model.where.first çağırmalısınız olarak daha kolay.

find tarzı eski karma seçenekleri ve find_ birçok dinamik yöntemler Raylar gibi 4.0 (see relevant release notes)itiraz unutmayın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • pilslajt

    pilslajt

    20 HAZİRAN 2008