find
, where
ve find_by_id
arasındaki fark nedir? Bir kimlik verilen bir kullanıcı bulmaya çalışırken hepsi çalışır.Bul, nerede ve find_by_id arasındaki fark nedir?
cevap
Fark, bir kayıt bulunduğunda veya bulunmadığında döndükleri şeydir. Aşağıdaki örnekleri inceleyin: Gördüğünüz gibi, mevcut bir kullanıcı 3 yöntemlerden birini kullanarak getirilen olabilir
>> User.create name: 'THE USER' # creates a user with id = 1
>> User.find(1) # returns the user
>> User.find_by_id(1) # returns the user
>> User.where(id: 1).first # returns the user
. where
kullanarak büyük farkı (tabii ilk first
uğramadan.) Zincir komutları
Diyelim ki Yani
>> User.find(2) # raises an exception
>> User.find_by_id(2) # nil
>> User.where(id: 2).first # nil
mevcut olmayan bir kaydı bulmak için çalışırken bir göz atalım olabilir olduğu Burada, mevcut olmayan bir kaydı aramak için find
kullandığınızda, bir istisna alırsınız. Bu istisna, üretim ortamında bir 404 veren ActiveRecord::RecordNotFound
.
Bu yardımcı olur umarız!
GÜNCELLEME
Raylar 4 bu id
tarafından satır bulmak için kullanılır =>find_by
>> User.find_by(id: 1) # returns nil if there's no user with an id of 1
>> User.find_by!(id: 1) # raises ActiveRecord::RecordNotFound when no record is found
find
için aşağıdaki sözdizimini kullanır. Bu tek rekoru geri verecektir.
YourModel.find(2)
Address.find(1)
find_by
=> Bu kaydın herhangi özelliklere göre satır almak için kullanılır. Koşul eşleştiğinde bu ilk eşleşme kaydını döndürür. => Bu kullanılır
YourModel.find_by_attrname("value")
Address.find_by_street_name_and_city("Andheri", "Newyork")
Addess.find_by_id(4)
where
sıfır ya da daha fazla kayıt olabilir etkin kayıt ilişkisi (yani,) dönmek için koşullara bağlı olarak, aktif kayıtları almak.
YourModel.where(:attrname => "something")
Address.where(:city => "Newyork")
bulmak => Bu dönüş verilen primary_key (id) bir hata verecektir aksi de sistemde varsa tek kaydı. => Bu tek bir kayıt dönecektir
Model.find(required_id_value)
find_by , belirtilen özelliklere bağlıdır ve öz nitelik değeri DB mevcut değilse nil döndürecektir. Burada adı bir özelliktir ve Modal'ınızda bulunması gerekir.
Burada => Bu, sıfır kaydının geri döndürülmesi durumunda yalnızca bir kaydı döndürmek için ilk önce kullanmanız gereken sıfır veya daha fazla kayıtla etkin bir kayıt ilişkisi döndürecektir.
Model.where(id: id_value).first
** Record.find (0) ** 'ActiveRecord :: RecordNotFound' yükseldi: 'id' = 0 'ile kayıt bulunamadı ** Record.find_by (id: 0) ** 'nil' döndürür Record.find_by_id (0), daha sonraki ray sürümlerinde kullanımdan kaldırılmış olsa da nil değerini döndürür. ** Record.where (id: 0) ** boş bir dizi döndürüyor – Hanmaslah
- 1. Python'da {} ve [] arasındaki fark nedir?
- 2. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 3. $ arasındaki fark nedir? ve PowerShell
- 4. Eklentiler ve Ruby taşlar arasındaki fark nedir?
- 5. Fark() arasındaki fark nedir mustache.js
- 6. AppDomain.CreateInstance ve Activator.CreateInstance arasındaki fark nedir?
- 7. arasındaki fark nedir?
- 8. Java arasındaki fark nedir
- 9. arasındaki fark nedir?
- 10. arasındaki fark nedir?
- 11. app.doScript ve $ .evalFile arasındaki fark nedir?
- 12. gVim ve gVim arasındaki fark nedir?
- 13. isAlpha ve isLetter arasındaki fark nedir?
- 14. Control.Enter ve Control.GotFocus olayları arasındaki fark nedir?
- 15. .got ve .got.plt bölümü arasındaki fark nedir?
- 16. AutomationProperties.AutomationID ve AutomationProperties.Name arasındaki fark nedir?
- 17. Android'de getDir ve getFilesDir arasındaki fark nedir?
- 18. R içinde `=` ve `<-` arasındaki fark nedir?
- 19. uint ve System.UInt32 arasındaki fark nedir?
- 20. PropertyChangeListener ve VetoableChangeListener arasındaki fark nedir?
- 21. XSS'de IDREF ve IDREFS arasındaki fark nedir?
- 22. Cacerts ve keystore arasındaki fark nedir?
- 23. GPLv2 ve GPLv3 arasındaki fark nedir?
- 24. VarIsEmpty ve VarIsEmptyParam işlevleri arasındaki fark nedir
- 25. ActiveSupport'ta mattr_accessor ve cattr_accessor arasındaki fark nedir?
- 26. Hashtable ve Dictionary arasındaki fark nedir?
- 27. RoutedCommand ve RoutedUICommand arasındaki fark nedir?
- 28. MySQL'deki boolean ve bool arasındaki fark nedir?
- 29. Task.Factory.FromAsync ve BeginX/EndX arasındaki fark nedir?
- 30. WideChar ve AnsiChar arasındaki fark nedir?
Hepiniz 'find_by_ *' yöntemler find_by 'lehine raylar 4'te deprecrated olduğunu belirtmeliyiz (*: ...)' işte be olacağını: 'find_by (id: ...) – pjam
wow Bunu bilmiyordum. Teşekkürler! neden burada bahsedilen değil? http://edgeguides.rubyonrails.org/4_0_release_notes.html – jvnill