我在显示用户表时尝试获取每个Programme
的最后一个User
。 (User
有一个Profile
且Profile
属于User
)
在我的控制器中,我正在获取所有程序,如下所示:
@programmes = Programme.all
<table>
<% @profiles.each do |profile| %>
<tr>
<td>
<% @programmes.each do |programme| %>
<% if programme.client == profile.user.id %>
<%= programme.description %>
<% end %>
<% end %>
</tr>
<% end %>
</table>
但是如何为每个用户获取最后程序?
谢谢!
答案 0 :(得分:1)
根据您的设置,您可以在此处为每位用户显示 last 计划:
<table>
<% @profiles.each do |profile|
<% user = profile.user
<% last_programme = user.programmes.last %>
<tr>
<td><%= last_programme.try(:description) %></td>
</tr>
<% end %>
</table>
http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-last
答案 1 :(得分:1)
要查找最后一条记录,您只需拨打.last
您也可以致电.first
.second
.third
Person.last # returns the last object fetched by SELECT * FROM people
Person.where(["user_name = ?", user_name]).last
Person.order("created_on DESC").offset(5).last
Person.last(3) # returns the last three objects fetched by SELECT * FROM people.
在你的情况下,<% user.programmes.last %>
会做到这一点