ruby
1config/routes.rb 2(中略) 3 resources :notes,except:[:index] do 4 get :search, on: :collection 5 end 6 resources :comments,only:[:create,:edit,:update,:destroy] 7end
ruby
1notes_controller 2def search 3 if params[:keyword].present? 4 @notes = Note.where('title LIKE ?', "%#{params[:keyword]}%").order("id DESC").page(params[:page]).per(30) 5 else 6 @notes = Note.where(:secret==0).order("id DESC").page(params[:page]).per(30) 7 end 8 end
ruby
1_header.html.erb 2<nav class="navbar navbar-expand-lg navbar-fixed-top navbar-dark bg-primary d-print"> 3 <div class="container"> 4 <a href="/user/#{<%= current_user.id%>}"> 5 <%=image_tag "header_header.png", class:'navbar-brand' %> 6 </a> 7 <form class="form-inline mx-auto w-50"> 8 <%= form_with url: search_notes_path, method: :get, local: true do |f| %> 9 <%= f.text_field :keyword ,placeholder:"検索",class:"form-control" ,size:"85*85"%> 10 <%= f.submit :search, value:"検索",class:"btn btn-dark btn-lg"%> 11 <% end %> 12 </form> 13(中略)
ruby
1searcc.html.erb 2<div class="container"> 3 <div class="form-inline my-5 justify-content-center"> 4 <%= form_with url: search_notes_path, method: :get, local: true do |f| %> 5 <%= f.text_field :keyword, value:"#{params[:keyword]}",class:"form-control" ,size:"200*200"%> 6 <%= f.submit :search, value:"検索",class:"btn btn-dark btn-lg"%> 7 <% end %> 8 </div> 9 <div class="note_all"> 10 <% if @notes.present? %> 11 <%= render partial: "common/note_all" %> 12 <% end %> 13 </div> 14</div>
このようなコードで検索機能を実装しようとしているのですが、ヘッダーの検索バーから検索してもページが遷移しません。 redirectを書いている訳でもないのに同じページのままなのです。
直接URLにnotes/search
と入力するとコントローラーで分岐したelseの方で全ての情報を掲載したページは出ます。
ヘッダーの検索バーからsearch.html.erbに遷移し、きちんと検索結果を表示するにはどうすれば良いでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。