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

  • Break

    Break

    10 Aralık 2005
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009
  • ThePointblank

    ThePointblan

    18 Aralık 2006