前提・実現したいこと
トップページからsearch.html.erbに検索結果を表示できるようにしたいです。
発生している問題・エラーメッセージ
エラーメッセージはなくbinding.pryを試したがコントローラーに値が送られていないみたいです。
Started GET "/?option=1&keyword=%E7%B6%BA%E9%BA%97&commit=%E6%A4%9C%E7%B4%A2" for ::1 at 2021-01-18 16:02:13 +0900 Processing by UsersController#index as HTML Parameters: {"option"=>"1", "keyword"=>"綺麗", "commit"=>"検索"} Rendering users/index.html.erb within layouts/application User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 ORDER BY `users`.`id` ASC LIMIT 1 ↳ app/views/shared/_header.html.erb:4 Rendered shared/_header.html.erb (Duration: 2.8ms | Allocations: 2316) Rendered shared/_footer.html.erb (Duration: 0.0ms | Allocations: 5) Rendered users/index.html.erb within layouts/application (Duration: 6.2ms | Allocations: 5231) [Webpacker] Everything's up-to-date. Nothing to do Completed 200 OK in 24ms (Views: 22.3ms | ActiveRecord: 0.4ms | Allocations: 23613)
該当のソースコード
検索form <%= form_with( url:search_users_path, local: true, method: :get, class: "search-form") do |f|%> <%= f.select(:option, options_for_select([["user", "1"],["information","2"]]))%> <%= f.text_field :keyword, placeholder: "小見出し"%> <%= f.submit "検索", class: "btn btn-outline-light" %>
userコントローラーのsearchアクション def search @user_or_information = params[:option] if @user_or_information == "1" @users = User.search(params[:keyword], @user_or_information) else @posts = Information.search(params[:keyword], @user_or_information) end end ``` ``` userモデル def User.search(search, user_or_information) if user_or_post == "1" User.where(['nickname LIKE ?', "%#{search}%"]) else User.all end ``` ``` informationモデル def Information.search(search, user_or_information) if user_or_post == "2" Information.where(['title LIKE ?', "%#{search}%"]) else Information.all end
試したこと
binding.pryで処理が止まるかを試しましたが、処理が止まることもなく下記が表示されただけでした。
http://localhost:3000/?option=1&keyword=%E7%B6%BA%E9%BA%97&commit=%E6%A4%9C%E7%B4%A2
補足情報(FW/ツールのバージョンなど)
ransackは使用しておりません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/19 12:55
2021/01/19 13:07