I have a student
and school
database tied to my rails project I have these attributes for student table :
[id,fname,lname,created_at,updated_at,school_id,user_id]
and my school table has these attributes
[id,name,address,franchise_id,created_at,updated_at]
so far I am trying to display the school name
for each student that a current user may have. but when I run it, it will show all the schools for all the students of that user on each iteration of the loop. here is my index action method where the magic is supposed to happen.
@child = Student.where(user_id:current_user.id).pluck(:school_id)
@schoolname = School.where(id:@child).pluck(:name)
and my index page in my view:
<div class="container">
<h1><font color="white"><b>My students</font></b></h1>
<table class="table table-striped">
<thead>
<tr>
<th><font color="white"><b>Id</font></b></th>
<th><font color="white"><b>Fname</font></b></th>
<th><font color="white"><b>Lname</font></b></th>
<th><font color="white"><b>School</font></b></th>
<th><font color="white"><b>manage</font></b></th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @students.each do |student| %>
<tr>
<td><font color="white"><b><%= student.id %></font></b></td>
<td><font color="white"><b><%= student.fname %></font></b></td>
<td><font color="white"><b><%= student.lname %></font></b></td>
<td><font color="white"><b><%= @schoolname %></font></b></td>
<td><%= link_to 'Show', student %>
<%= link_to 'Edit', edit_student_path(student) %>
<%= link_to 'Destroy', student, method: :delete, data: { confirm:
'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<b><%= link_to 'Add Student', add_students_path(@student),
{:style=>'color:#FFFFFF;'} %></b><br/>
<b> <%= link_to 'New Student', new_student_path,
{:style=>'color:#FFFFFF;'} %></b>
</div>
my model is empty
而不是在视图循环中使用@schoolname,而是编写student.school.name
如果您的一对多关系有效,那么应该可以。
Sorry I don't the ability to comment but I wanted to ask where you assign @students
? You use it in your view but I don't see it in your controller's index method. Also @student
should be student
in the link_to
methods at the end.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.