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

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

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

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

Q&A

0回答

292閲覧

ransackによる検索機能の実装

tomoyatakara

総合スコア6

Ruby on Rails

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

0グッド

0クリップ

投稿2019/07/28 15:41

編集2019/07/28 16:18

前提・実現したいこと

・検索機能
ransackを使い検索機能を実装しているのですが、検索結果が出ません。

発生している問題・エラーメッセージ

@tで定義している変数の検索後、画面が変化します。
しかし、@qの変数の部分は検索は機能しているのですが、検索結果が返ってこないです。

該当のソースコード>

ソースコード

言語はruby on rails **aplication_controller.rb** def ransack if admin_signed_in? @q = Item.ransack(params[:q]) @items = @q.result.includes(:artist).includes(:genre) @t = User.ransack(params[:t], search_key: :t) elsif user_signed_in? @q = Item.ransack(params[:q]) @items = @q.result.includes(:artist).includes(:genre) else @q = Item.ransack(params[:q]) @items = @q.result.includes(:artist).includes(:genre) end ```ソースコード

aplication_controller.rb
def ransack
if admin_signed_in?
@q = Item.ransack(params[:q])
@items = @q.result.includes(:artist).includes(:genre)

@t = User.ransack(params[:t], search_key: :t) elsif user_signed_in? @q = Item.ransack(params[:q]) @items = @q.result.includes(:artist).includes(:genre) else @q = Item.ransack(params[:q]) @items = @q.result.includes(:artist).includes(:genre) end

aplication.html.erb

<% if admin_signed_in? %>
<%= search_form_for @q do |f| %>
<% f.label :name_or_artist_name_or_genre_name_cont %>
<%= f.search_field :name_or_artist_name_or_genre_name_cont %>

<%= f.submit '商品検索'%> <% end %>

<%= search_form_for(@t, as: :t, url:admins_userIndex_path) do |t| %>

<% t.label :name_first_or_name_last_or_name_first_phonetic_or_name_last_phonetic_cont %> <%= t.search_field :name_first_or_name_last_or_name_first_phonetic_or_name_last_phonetic_cont %> <%= t.submit 'ユーザー検索' %>

<% end %>
<% elsif user_signed_in? %>
<%= search_form_for @q do |f| %>
<% f.label :name_or_artist_name_or_genre_name_cont %>
<%= f.search_field :name_or_artist_name_or_genre_name_cont %>

<%= f.submit '検索'%>

<% end %>
<% else %>
<%= search_form_for @q do |f| %>
<% f.label :name_or_artist_name_or_genre_name_cont %>
<%= f.search_field :name_or_artist_name_or_genre_name_cont %>

<%= f.submit '検索'%> <% end %>

<% end %>---

admins_controller.erb

def userIndex @users = User.all.page(params[:page]).per(9) @t = User.ransack(params[:t], search_key: :t) @users = @t.result.page(params[:page]).per(9) end
### 試したこと @qで変数を定義している検索機能は、以前は機能していたが、 @tの検索が可能になった後に、@qの部分が機能しなくなりました。 ご回答よろしくお願いいたします。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

siruku6

2019/09/21 16:33

aplication_controller.rb の ransackメソッドはどこでどうやって呼び出しているのでしょうか? もしかしたらうごいていないのでは?と感じました。 回答を得るためには、aplication_controller.rb を 丸々掲載した方がよいかもしれません。(before_actionなどの情報が必要なため。) それとは別に、application_controller.rbが2つ表示されていることに意味があるのであればその説明を、特に意味がないのであれば削除しておいた方が回答が付きやすいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問