ฉันต้องการทำสิ่งที่ชอบ:
SELECT * FROM USER WHERE NAME LIKE '%Smith%';
ความพยายามของฉันใน Arel:
# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql
อย่างไรก็ตามสิ่งนี้จะกลายเป็น:
SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';
Arel ตัดสตริงข้อความค้นหา "Smith" อย่างถูกต้อง แต่เนื่องจากนี่เป็นคำสั่ง LIKE จึงไม่สามารถใช้งานได้
คำถาม LIKE ใน Arel ทำอย่างไร
PS Bonus - จริงๆแล้วฉันกำลังพยายามสแกนสองฟิลด์บนตารางทั้งชื่อและคำอธิบายเพื่อดูว่าตรงกับข้อความค้นหาหรือไม่ วิธีการที่จะทำงาน?
1
ฉันอัปเดตคำตอบ arel สำหรับโบนัส
—
Pedro Rolo