我试图展示该模型的所有实例' Project'在表格中,使用以下代码:
<table style="table-layout: fixed;">
<% @projects.each.reverse do |project| %>
<tr>
<td style="width: 10%;"><%=link_to project.owner.upcase,user_path(project.owner) %> </td>
<td><%= link_to project.title, project_path(project) %></td>
<td style=""><%= project.comments.pluck(:body).last || project.descr %></td>
<td><%= project.sdate.strftime('%d/%m/%y') %></td>
<td><%= project.comments.pluck(:expdate).last.try(:strftime, '%d/%m/%Y') || project.edate.strftime('%d/%m/%y') %></td>
<td>
<%= link_to 'Edit', edit_project_path(project) %> <br>
<%= link_to 'Delete', project_path(project), method: :delete, data: { confirm: 'Are you sure?' } %>
</td>
</tr>
<% end %>
</table>
但是我收到了这个错误:
项目#index 中的 NoMethodError
任何人都可以说出错误吗? 我在其他地方使用过类似的线,但它运行良好: 提前致谢!reverse
#<Enumerator:0x44bc9c8>
<%= render @project.comments.reverse %>
答案 0 :(得分:1)
您试图反转单个对象而不是集合。
Aswin说:@projects.reverse.each
代替each
之前的reverse
。
答案 1 :(得分:1)
您在reverse
的结果(each
)上调用了Enumerator
方法,而reverse
是Enumerable
上的方法。在使用each
进行迭代之前,您需要先反转集合/数组。试试这个。
@projects.reverse.each do |project|