Я реализовал PgSearch на моей модели Node
следующим образом:
include PgSearch
pg_search_scope :node_search, against: [:name, :user_id, :circa],
using: { tsearch: { any_word: true} },
:associated_against => {
comments: [:message],
user: [:first_name, :last_name, :email],
memberships: [:relation]
}
И в моем контроллере у меня есть это:
if params[:search]
@nodes = Node.node_search(params[:search])
end
В идеале, что я хотел бы сделать, так это чтобы кто-то мог ввести текстовое представление (флаг) одной из ассоциаций и иметь фильтр поиска только для этого флага.
Например. сказать: "имя: Прыгающий мяч", где поиск будет происходить только в столбце с именем name
на модели nodes
. Ака... он будет искать все узлы с именем Bouncing Ball
, а не искать другие столбцы или модели или даже какие-либо ассоциации.
Естественно, я хотел бы иметь возможность выполнять такие поиски, как: owner: John Brown
(который ищет все узлы, чьи имя и фамилия владельца/пользователя — Джон Браун), comment: Manhattan
(который ищет все узлы, которые имеют комментарий с текстом Manhattan
в копии , и так далее.
Как мне добиться этого с помощью PgSearch?