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

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

ただいまの
回答率

89.62%

ransackによる検索機能の実装

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 143

tomoyatakara

score 0

前提・実現したいこと

・検索機能
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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • siruku6

    2019/09/22 01:33

    aplication_controller.rb の ransackメソッドはどこでどうやって呼び出しているのでしょうか?
    もしかしたらうごいていないのでは?と感じました。

    回答を得るためには、aplication_controller.rb を 丸々掲載した方がよいかもしれません。(before_actionなどの情報が必要なため。)

    それとは別に、application_controller.rbが2つ表示されていることに意味があるのであればその説明を、特に意味がないのであれば削除しておいた方が回答が付きやすいと思います。

    キャンセル

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

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

  • ただいまの回答率 89.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる