我有一个有学科和等级属性的模范学生。一个学生可以有许多科目和成绩,我想做的是能够发表第二或第三主题列出的特定学生。
例如,用户搜索一个学生,然后单击该学生,这会将他们带到一个单独的页面,列出有关该学生的信息(即,学生id:1)。是否有代码可以添加到视图中,以便从科目和年级属性中列出第n项?
我在网上发现了类似的问题,但这些解决方案都与模型有关,而不是属性。例如,建议在控制器中使用limit方法的一种解决方案,以及建议使用以下代码的另一种解决方案:
<% firm.state_of_business.split(',').each_with_index do |state, index| %>
<td> <b>State <%= index + 1 %></b> <%= state %>当您没有选择特定的模型时,这似乎工作得很好。当您选择一个特定的模型(即,学生id:1)时,这似乎不起作用。至少对我来说不是。现在,我下面的代码显示了第一项。我怎样才能把第一、第一、第二和第二、第三、第三等科目列出来呢?参见下面的示例代码。请注意,我在这里尝试了其他的解决方案,但无法让它们发挥作用,这使我认为我的问题可能不同于以前提出的问题。谢谢你的帮助。
视图代码
<h2>Students</h2>
<p> Student:
<%= @student.name %>
</p>
<table>
<tr>
<th> Subject </th>
<th> Grade </th>
</tr>
<tr>
<td><%= @student.subject %> </td>
<td><%= @student.grade %> </td>
<tr>
</table>控制器显示方法
def show
@user = current_user
@student = Student.find(params[:id])
end期望输出
Student: Matt Jones
Subject Grade
Math 95
History 90
English 91 发布于 2016-10-03 22:33:48
尝试添加以下代码:
<%= @student.grade.split(',')[0] %>将在数组中发布第一个项。我将发表第二项,等等,这应该有效。
发布于 2016-10-03 01:59:38
我想您可以创建另一个名为Subject的模型,并在class Student中添加has_many :subjects。
在class Subject中,您可以添加这一行belongs_to :student。
然后你可以这样做:
<% @student.subjects.each do |subject| %>
<tr>
<td><%= subject.name %> </td>
<td><%= subject.grade %> </td>
<tr>
<% end %> 为了说明清楚,在上面的示例中,Subject模型包含属性name和grade。
https://stackoverflow.com/questions/39823230
复制相似问题