2013-10-25 9 views
5

Jaki jest najłatwiejszy sposób szybkiego wyszukiwania symboli wieloznacznych na polu z poziomu konsoli? Nie dbam o ochronę przed iniekcją SQL.Szyny 4: proste wyszukiwanie za pomocą symboli wieloznacznych z poziomu konsoli

Używam PostgreSQL.

wyszukiwania title z ciągów znaków zawierających „wschodzących

To działa, ale jest nieco kłopotliwe. Ciekawe, czy nie było skrótem?

Product.where("title @@ :q", q: "emerging") 

Równie kłopotliwe, ale nie wydaje się, aby pracować dla mnie w Rails 4:

Product.where("title ILIKE ?", "emerging") 
Product.where("title ilike :q", q: "emerging") 

Chyba szukam czegoś jak Product.where(title: "*emerging*")

Odpowiedz

11

ten powinien zrobić:

word = 'emerging' 
Product.where('title ILIKE ?', "%#{word}%") 
  • ILIKE sprawia, że ​​wyszukiwarka nie jest wrażliwy na sprawy
  • katalogu „%” dzikie karty sprawia, że ​​wyszukiwarki mecz każdy produkt posiadający tytuł zawierajacego „słowo” wewnątrz (lub nie) rzeczy przed i/lub po.
+0

Szukałem rozwiązania dla tego i wszystko zajęło było dodanie „i” na „jak”. Nawet aktywna dokumentacja rekordu nie ma takich ... sheesh. – nerdgasms

+0

@nerdgasms Funkcje 'like' lub' ilike' nie są powiązane z 'ActiveRecord', ale z systemem DB, którego używasz. – MrYoshiji

3

Zastosowanie LIKE coś takiego:

Product.where('title LIKE ?', '%emerging%') 
Powiązane problemy