ネタ。こういうコードを書き始める前に ransack gem の使い方を学習したほうがいいのかもしれない
ビュー:
/ views/articles/index.html.slim = form_tag 'articles/search' = text_field_tag :q, 'Lorem Ipsum' = submit_tag 'Search'
コントローラ:
class ArticlesController < ApplicationController before_action :set_article, only: [:show, :edit, :update, :destroy] def search words = params[:q].split # スペース区切りでの複数単語入力を期待 @articles = Article.where( words.size.times.map { 'body LIKE ?' }.join(' OR '), # 単語の数だけ検索条件を量産 *words.map { |word| "%#{word}%" } # 各単語を曖昧検索可能な文字列に加工し引数として展開 ) end # ... end