Boas dicas!
Eu usei ruby on rails no meu primeiro emprego, tinhamos um CMS pra sites de prefeitura em rails, enquanto os outros sites que faziamos era usando PHP (com um framework próprio).
Incrível como era fácil fazer páginas novas, implementar ideias do cliente e reproduzir as alterações de um projeto em outros com facilidade no rails em comparação com o PHP.
Na época eu não entendia métodos como o pluck
pra "arrancar" apenas as colunas de interesse. O fetch
é uma sacada muito boa que eu sinto falta em outras linguagens.
Quanto a sua dica para a busca, não entendi como o
must: [
{ match: { name: params[:search] } },
{ match: { category: params[:category] } },
{ match: { price: params[:price] } }
]
vai otimizar o query. Ele ainda realiza um LIKE
no banco de dados?
( agora um comentário offtopic ) Pra melhorar a legibilidade do seu post, você pode colocar os blocos de texto dentro de blocos de três crazes (
```
) seguido da linguagem de programação, por exemplo:
```ruby def search @products = Product.where("name LIKE '%#{params[:search]}%' OR category LIKE '%#{params[:search]}%'") @products = @products.where(category: params[:category]) if params[:category].present? @products = @products.where(price: params[:price]) if params[:price].present? # ... outras condições de busca ... end ```
vai ficar assim:
def search
@products = Product.where("name LIKE '%#{params[:search]}%' OR category LIKE '%#{params[:search]}%'")
@products = @products.where(category: params[:category]) if params[:category].present?
@products = @products.where(price: params[:price]) if params[:price].present?
# ... outras condições de busca ...
end