Вы звоните [:teacher_id]
на @students
, что является ActiveRecord
отношением.Вы можете думать об этом как о массиве.Лучше позвонить этому отдельному студенту, переместив if
внутри итерации:
<% @students = Student.all %>
<% @students.each do |student| %>
<% if student[:teacher_id] == @current_user.id %>
Username: <%= student.username %><br/>
Name: <%= student.name %><br/>
<% end %>
<% end %>
Есть некоторые улучшения, которые вы можете сделать:
- Не вызывать Active Recordзапрос (
Student.all
), переместите его в контроллер. - Фильтруйте в запросе AR, а не в приложении:
Student.where(teacher_id: @current_user.id)
вместо Student.all
и проверьте значение хеш-функции.
Наконец-то вы получите
# controller:
@students = Student.where(teacher_id: @current_user.id)
# view:
<% @students.each do |student| %>
Username: <%= student.username %><br/>
Name: <%= student.name %><br/>
<% end %>