我有一个student
和school
数据库连接到我的rails项目,我有学生表的这些属性:
[id,fname,lname,created_at,updated_at,school_id,user_id]
我的学校表具有以下属性
[id,name,address,franchise_id,created_at,updated_at]
到目前为止,我试图为当前用户可能拥有的每个学生显示学校name
。但当我运行它时,它会在循环的每次迭代中显示该用户的所有学生的所有学校。这是我的索引操作方法,魔术应该发生在这里。
@child = Student.where(user_id:current_user.id).pluck(:school_id)
@schoolname = School.where(id:@child).pluck(:name)
我的索引页面在我的视图中:
<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>
我的型号是空的
不要在视图中的循环中使用@schoolname,而是编写student.school.name
如果你的一对多关系有效,这应该有效。
很抱歉,我没有能力发表评论,但我想问你把@students
分配到哪里?您在视图中使用它,但我在控制器的索引方法中看不到它。在最后的link_to
方法中,@student
也应该是student
。