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

  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • listedabive

    listedabive

    30 Ocak 2007
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008