Контроллеры действий и фильтрация - PullRequest
0 голосов
/ 23 октября 2019

Я занимаюсь разработкой приложения, в котором администратор может видеть группу пользователей в таблицах HTML, которые отфильтровываются по ": platoon => A, B, C, D"

Все пользователи хранятся в"модель пользователя", и я пытаюсь разместить несколько таблиц HTML на одной странице, показывая только пользователей, связанных с этим взводом.

UsersController:

class UsersController < ApplicationController
  def index
    @users = User.all
    @a_platoon = @users.where(:platoon => @A)
    @b_platoon = @users.where(:platoon => @B)
    @c_platoon = @users.where(:platoon => @C)
    @d_platoon = @users.where(:platoon => @D)
  end
end

и в моем index.html. erb:

<thead>
  <tr>
    <th>Name</th>
    <th>Reg Number</th>
    <th>Phone</th>
    <th>Alt Phone</th>
    <th colspan="7"></th>
  </tr>
</thead>

<tbody>
  <% @b_platoon.each do |b_platoon| %>
    <tr>
      <td><%= b_platoon.name %></td>
      <td><%= b_platoon.reg_number %></td>
      <td><%= b_platoon.phone %></td>
      <td><%= b_platoon.alt_phone %></td>
    </tr>
  <% end %>
</tbody>

Цель здесь - показать всех пользователей, связанных с b_platoon.

Я не получаю никаких ошибок, но моя таблица просто пуста. Я полагаю, что моя проблема заключается в методах контроллера, но я недостаточно квалифицирован, чтобы найти его, и я изо всех сил пытался найти полезную документацию.

Если это может помочь, вот моя схема для моей модели «Пользователи»:

create_table "users", force: :cascade do |t|
  t.string "email", default: "", null: false
  t.string "encrypted_password", default: "", null: false
  t.string "reset_password_token"
  t.datetime "reset_password_sent_at"
  t.datetime "remember_created_at"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
  t.string "name"
  t.integer "reg_number"
  t.string "platoon"
  t.string "phone"
  t.string "alt_phone"
  t.boolean "admin", default: false
  t.index ["email"], name: "index_users_on_email", unique: true
  t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
end

1 Ответ

0 голосов
/ 23 октября 2019

Используйте b_platoon.your_field вместо user.your_field

<% @b_platoon.each do |b_platoon| %>
   <tr>
      <td><%= b_platoon.name %></td>
      <td><%= b_platoon.reg_number %></td>
      <td><%= b_platoon.phone %></td>
      <td><%= b_platoon.alt_phone %></td>
   </tr> 
<% end %>

Вы должны вызывать методы на перечислителе в .each

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...