2016-03-31 18 views
1

Kendimi aynı durumdan Rails ile birçok kez karşılaşıyorum. Kabaca bir Model'e karşılık gelen bir hash'ım var ve modelin bir örneğini, karmadaki tüm anahtar/değer çiftleriyle eşleşen olup olmadığını bulmak istiyorum. Rayların bunu yapmasının bir yolu var mı? Değilse, ekleyebileceğim üçüncü taraf kitaplığı/işlevi var mı?Bütün bir hash eşleşmesine uyan bir öğeyi bul

person_hash = { name: "John Doe", favorite_color: "chartreuse" } 
p = Person.ultra_cool_find(person_hash) 

puts p.name=="John Doe"    #true 
puts p.favorite_color=="chartreuse" #true 

cevap

1

Kişi bir ActiveRecord modeli mi Örneğin

, ben böyle bir şey yapmak isterdim?

Eğer person_hash herhangi bir benzersiz bir alan varsa çalışacak
p = Person.find_by(name: person_hash[:name]) 

Bu

denedik var. Örneğin, sadece bir kişi John Doe ismine sahipse, yukarıdaki örnek işe yarayacaktır.

Aksi

p = Person.where(name: person_hash[:name]).where(favorite_color: person_hash[:favorite_color]) 

Sen Vay