■ 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に検索後のデータ内という記述を書くのだと考えましたが、術がわかりかねる状態です。お忙しい中、恐れ入りますがご教授いただけると幸いです。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー