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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

3407閲覧

Ransackを使った検索に苦戦しています(Ruby On Rails)

yamady

総合スコア176

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2017/05/04 08:36

閲覧いただきありがとうございます。

Ransackを使った検索機能の実装を試みているのですが、苦戦しています。
まず、実現したいことは下記2つです。

・データベース内にある複数カラム(title、contents)のすべてからキーワードを検索したい
・キーワード検索結果が表示されない場合は「検索結果がありませんでした。」と表示したい

http://qiita.com/fujitora/items/b2134bf6abcfda79c47f
こちらの記事を参考に進めてみたのですが、検索後のURLは「%5D=東京&commit=検索する」変更されているのですが、実際に検索結果が反映されません。。

開発環境:Ruby on Rails 5.0.0.1

【app/controllers/application_controller.rb】

Ruby

1class ApplicationController < ActionController::Base 2 before_filter :set_search 3 protect_from_forgery with: :exception 4 include SessionsHelper 5 6 def set_search 7 @search = Restaurant.ransack(params[:q]) 8 @ssearch_restaurants = @search.result.paginate(page: params[:page]) 9 end 10end

【app/views/restaurants/search.html.erb】

Ruby

1 <%= search_form_for @search, url: search_restaurants_path do |f| %> 2 <div class="title"> 3 <%= f.text_field :contents_cont, placeholder: "キーワードを検索する", class: "form-control search-result-keyword col-md-6" %> 4 <%= f.submit ("検索する"), class: "btn btn-form col-md-6" %> 5 </div> 6 <% end %>

Ruby

1<% @restaurants.each do |restaurant| %> 2・・・ 3<% end %>

すみませんが、お助けくださいませ。
どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

diff

1class ApplicationController < ActionController::Base 2 before_filter :set_search 3 protect_from_forgery with: :exception 4 include SessionsHelper 5 6 def set_search 7 @search = Restaurant.ransack(params[:q]) 8- @ssearch_restaurants = @search.result.paginate(page: params[:page]) 9+ @search_restaurants = @search.result.paginate(page: params[:page]) # typo修正 10 end 11end

diff

1-<% @restaurants.each do |restaurant| %> 2+<% @search_restaurants.each do |restaurant| %> 3・・・ 4<% end %>

@restaurants.eachではなくて@ssearch_restaurants.each(ssearchになってるのはtypoですね)ではないですか? それだけ変更すれば結果が表示できると思います。

投稿2017/05/04 12:55

編集2017/05/04 23:40
t_tonchim

総合スコア96

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

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

yamady

2017/05/05 01:26

検索結果が表示されました!ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問