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

  • cyriak

    cyriak

    29 Mart 2006
  • friendz.net

    friendz.net

    29 EKİM 2010
  • RawBrahs

    RawBrahs

    28 Aralık 2010