Searching
The REST API's support full text search through the pg_search gem. The search is performed on specified columns of the model and is case insensitive.
No columns are searched by default. You must specify the columns you want to search on.
General usage
For example, if it is needed to query users by their name (first or last) the request and its query parameters could be:
/users?search=john
All searchable fields will be searched for the term john
and the results will be returned.
Searchable Fields
The searchable fields are specified with rhino_search
on the model. For example, if the User
model has a first_name
and last_name
columns, the rhino_search
call could be:
class User < ApplicationRecord
rhino_search %i[first_name last_name]
end
Associated Models
Related models columns can also be used for searching. For instance, if an author has many blogs and blogs have many blog posts, it would be possible to search blog posts using the blog's author
class BlogPost < ApplicationRecord
rhino_search %i[title body], { author: %i[name] }
end