2016-04-06 20 views
1

Bulanık Arama: Böyle bir arama kullanarakActiveRecord Ben buna benzer bir nesne bulmak için bir arama gerçekleştirmek için arıyorum

Object(id: 1, example: "abc")

:

params[:search] = "abcdef" 
Object.where("example LIKE ?", "#{params[:search]%") 

ama sadece am güçlü Yukarıdaki örnekte, aramamın daha fazla değil, benim neslimden daha az karakter içeriyorsa kullanın.

+0

ben şöyle 'LIKE' sözdizimi olacağını düşünüyorum harf duyarsız arama için ilike kullanmak isteyebilirsiniz:' GİBİ '%?%' '('%' Joker karakterdir). –

+0

Bu hiç mantıklı değil. Örnekle bir nesne istersiniz: Biri "eş anlamlılar" için arama yaptığında görünmesi Bu, "GİBİ" nin işleyişi değil, onu bu şekilde çalıştıramazsın. – meagar

+0

Evet, eski kodlarla çalışıyorum ve ihtiyacım olan dernekler orada değil. Bu aramayı, tutarsız veriler içeren nesneler arasında birkaç ilişkiyi derhal düzeltmek için kullanacağım. Bunun için bir çözüm var mı? –

cevap

0

ben olması gerektiğini düşünüyorum

params[:search] = "abcdef" 
Object.where("example LIKE ?", "%#{params[:search]}%") 

Ayrıca (eğer postgres kullanıyorsanız)

+0

Ray kılavuzları, özellikle SQL enjeksiyonu riski nedeniyle bunu yapan agaileri uyarır. http://edgeguides.rubyonrails.org/active_record_querying.html#pure-string-conditions – Arel

İlgili konular