質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

229閲覧

検索機能実装で出るエラーに対応したいです。。。

ganbarou_nippon

総合スコア18

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/02/13 07:49

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に遷移し、きちんと検索結果を表示するにはどうすれば良いでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

_header.html.erbformタグとform_withが入れ子になっているのが気になりました。
HTMLの仕様ではformタグは入れ子にできないので、以下のようにするとどうでしょうか?

rb

1# _header.html.erb 2... 3<%= form_with url: search_notes_path, method: :get, local: true, class: "form-inline mx-auto w-50" do |f| %> 4 <%= f.text_field :keyword ,placeholder:"検索",class:"form-control" ,size:"85*85"%> 5 <%= f.submit :search, value:"検索",class:"btn btn-dark btn-lg"%> 6<% end %> 7.... 8

投稿2020/02/13 13:39

shgtkshruch

総合スコア665

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

form_with を使われているので こちらの記事 みたいなことが起きてないですかね?

以下のようにしてみるといかがでしょうか

<%= form_with url: search_notes_path, method: :get, local: true, data: { remote: false} do |f| %>

投稿2020/02/13 08:05

t_kusakabe74

総合スコア549

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ganbarou_nippon

2020/02/13 08:21

ご回答いただきありがとうございます。。。 やってみましたが変わらなかったです。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問