SORU
13 Aralık 2010, PAZARTESİ


Nasıl Öncesinde ve Raylar GİBİ bir sorgu yapmak?

Gibi bir şey yapmak istiyorum:

SELECT * FROM USER WHERE NAME LIKE '%Smith%';

Öncesinde benim girişimi:

# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql

Ancak, bu olur:

SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';

Öncesinde sorgu dizesi 'Smith' bu işe yaramıyor GİBİ bir ifadedir. çünkü doğru, ama sarar

Nasıl bir Öncesinde GİBİ bir sorgu yapar?

S. S. Bonus--aslında masada iki alan tarama için çalışıyorum, hem de adını ve varsa eğer orada görmek açıklaması bu sorgu eşleşir. Nasıl oluyor bu iş?

CEVAP
13 Aralık 2010, PAZARTESİ


Deneyin

User.where("name like ?", "%#{params[:query]}%").to_sql

PS.

q = "%#{params[:query]}%"
User.where("name like ? or description like ?", q, q).to_sql

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008
  • Videogamerz | Call of Duty

    Videogamerz

    5 NİSAN 2012