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

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

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

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

Q&A

解決済

1回答

215閲覧

検索結果内で条件のレコードをカウントしたいです

azumaken

総合スコア14

Ruby on Rails 5

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

0グッド

0クリップ

投稿2021/07/19 14:37

■ edit_indexページにて条件に一致するレコードをカウントしております

def edit_index @care_users = CareUser.page(params[:page]).per(5) if @care_user.update(care_user_two_params)             中間テーブル内から指定したレコードを探しています @count = Intermediate.where(user_id: current_user.id, confirmation: false, indication: "更新") end end
*中間テーブル class Intermediate < ApplicationRecord belongs_to :user belongs_to :care_user validates :user_id, presence: true validates :care_user_id, presence: true end
edit_index.html.erb <% if @count.present? %> <p><%= "更新された利用者が#{@count.count}人います。再度確認をお願いします"%></p> <% end %> <div class="search"> <%= search_form_for @q, url: search_care_users_path do |f| %> <%= f.search_field :name_or_department_cont, class: "form-control",placeholder: "利用者名" %><br> <div class="search1"> <%= f.radio_button :department_cont, '本店' %>本店 <%= f.radio_button :department_cont, '2号店' %>2号店 <%= f.submit '検索', class: 'btnbtn-primary' %> </div> <% end %> </div>

上記の内容で、edit_index.html.erbは問題なく表示されます。
しかし検索にて、データを絞り込んだ場合も、edit_index.html.erbで表示されたcountと同様の数が、表示されてしまいます。(検索結果ページは1名しか表示されていなくても、全体として2名いれば、2名と出てしまう)

def edit_index @care_users = CareUser.page(params[:page]).per(5) if @care_user.update(care_user_two_params) @count = Intermediate.where(user_id: current_user.id, confirmation: false, indication: "更新") end end def search @results = @q.result @count = Intermediate.where(user_id: current_user.id, confirmation: false, indication: "更新") end
*search.html.erb <h1>検索結果</h1> <% if @count.present? %> <p><%= "更新された利用者が#{@count.count}名います。再度確認をお願いします"%></p> <% end %> <div class="col-md-10 col-md-offset-1"> <table class="table table-sm table-hover" id="table-care_users"> <thead> <tr> <th><%= CareUser.human_attribute_name(:image) %></th> <th><%= CareUser.human_attribute_name(:name) %></th> <th><%= CareUser.human_attribute_name(:department) %></th> <th><%= CareUser.human_attribute_name(:cuser_confirm) %></th> </tr> </thead> <% @results.each do |care_user| %> <tbody> <tr> <td> <% if care_user.image.present? %> <img src='<%= care_user.image %>'class="index_icon"></td> <% else %> <%= image_tag src='picture-3651039_1920.png', class: "index_icon", alt: "ユーザーアイコン" %> <% end %> <td><%= link_to care_user.name, care_user %></td> <td><%= care_user.department %></td> <td> <div class="index_btn"> <%= form_with(model: Intermediate, url: user_intermediates_path(current_user), local: true) do |form| %> <%= hidden_field_tag :user_id, current_user.id %> <%= hidden_field_tag :care_user_id, care_user.id %> <%= hidden_field_tag :confirmation, true %> <%= hidden_field_tag :indication, "" %> <% if Intermediate.exists?(user_id: current_user,care_user_id: care_user.id,confirmation: true) %> <%= form.submit "確認済", disabled: true,class: "btn btn-default " %> <% else %> <%= form.submit "確認", class: "btn btn-primary " %> <% end %> <% end %> </div> </td> </tr> <tbody> <% end %> </table> <p><%= link_to "一覧に戻る",care_users_edit_index_user_path(current_user), class: "btn btn-primary " %></p>

■ searchアクション内の@countに検索後のデータ内という記述を書くのだと考えましたが、術がわかりかねる状態です。お忙しい中、恐れ入りますがご教授いただけると幸いです。
宜しくお願い致します。

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

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

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

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

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

winterboum

2021/07/19 22:39

@results の数とは異なるのですか?
azumaken

2021/07/19 23:53

ご回答ありがとうございます。 はい。@resultsの数内(検索後に表示されるデータ)で@countを取りたいのですが、その方法が分かりかねている状態です。
guest

回答1

0

ベストアンサー

@q.result.count で検索結果数がでます。

投稿2021/07/20 05:24

winterboum

総合スコア23416

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

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

azumaken

2021/07/20 12:50

解決できました!! 初歩的な内容にも関わらず教えてくださり、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問