Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

一覧画面の切り替え機能

一覧画面の切り替え機能を実装したい

一覧画面のチェックカラムの状態に応じて一覧画面に表示される内容を変えられるようにしたいです。
_list.html.erbのチェックをクリックすると切り替えられるようにしたいです。
ですが、どうするべきなのかよくわからず質問させていただきました。

試したこと

 <form action="contacts?check=false">
   <button type="submit">チェック</button>
 </form>

こうすることでcheckがfalseの分だけ絞り込めると教えていただき実践しましたがうまくいきませんでした。
エラーは出ませんでした。

必要と思われる情報

t.boolean "check", default: false, null: false
index.html.erb
<div class="container">
  <div class="row d-flex justify-content-around">
    <div class="col-md-10 col-sm-12">
      <%= render 'admin/searches/search' %>
      <ul class="nav nav-tabs">
        <li class="nav-item">
          <%= link_to 'すべて', '#all', 'data-toggle': 'tab', class: 'nav-link active' %>
        </li>
        <li class="nav-item">
          <%= link_to '通常のお問い合わせ', '#normal', 'data-toggle': 'tab', class: 'nav-link' %>
        </li>
        <li class="nav-item">
          <%= link_to '通報', '#report', 'data-toggle': 'tab', class: 'nav-link' %>
        </li>
        <li class="nav-item">
          <%= link_to 'その他', '#other', 'data-toggle': 'tab', class: 'nav-link' %>
        </li>
      </ul>
        <div class="tab-content">
          <div class="tab-pane active" id="all"><%= render 'admin/contacts/list', contacts: @contacts %></div>
          <div class="tab-pane" id="normal"><%= render 'admin/contacts/list', contacts: @contact_normal %></div>
          <div class="tab-pane" id="report"><%= render 'admin/contacts/list', contacts: @contact_report %></div>
          <div class="tab-pane" id="other"><%= render 'admin/contacts/list', contacts: @contact_other %></div>
        </div>
      <%= paginate @contacts %>
    </div>
  </div>
</div>
_list.html.erb
<table class="table">
  <tr>
    <th>
      <%= link_to 'リスト' admin_contacts_path %>  ここをクリックすると切り替えられるようにしたい
    </th>
    <th>投稿者</th>
    <th>ご用件</th>
    <th>内容</th>
  </tr>
  <% contacts.each do |contact| %>
  <tr>
    <td class="check_btn_<%= contact.id %>">
      <%= render 'admin/contacts/check', contact: contact %>
    </td>
    <td><%= contact.name %></td>
    <td><%= contact.subject_i18n %></td>
    <td>
      <%= link_to admin_contact_path(contact) do %>
        <%= contact.message.truncate(10) %>
      <% end %>
    </td>
  </tr>
  <% end %>
</table>
contact_controller.rb
def index
   @contacts = Contact.page(params[:page]).per(10)
   @contact_normal = Contact.where(subject: 'normal').page(params[:page]).per(10)
   @contact_report = Contact.where(subject: 'report').page(params[:page]).per(10)
   @contact_other = Contact.where(subject: 'other').page(params[:page]).per(10)
end

0

No Answers yet.

Your answer might help someone💌