我有3个型号。
ProjectDate (available dates for a project) which
has_many Events
Events (the appointments on any given ProjectDate)
belongs_to ProjectDate
belongs_to User
User (the person who created the Event)
has_many Events
我想知道当我还提取与ProjectDate相关的所有事件时,如何使用包含(或者如果我可以使用包含)来获取与事件关联的用户属性。
我希望能够提取user.firstname(请参阅下面的视图代码)
这是我如何使用相关事件获取ProjectDats数组:
@projectschedule = ProjectDate.where(project_id: params[:p]).includes(:events).order(the_date: :asc)
我真的被卡住了。
以下是视图代码:
<table width="100%;" class="">
<tr>
<td >
<%=p.the_date.strftime("%A")%><br>
<%=p.the_date.strftime("%b. %d ")%>
</td>
<td class="dateinfo"><% p.events.users.each do |e| %>
<ul >
<li ><%= e.starts_on.strftime("%l:%m %P ") %><%= e.user.firstname %><%= e.description %><button >O</button><button >O</button></li>
</ul><% end %>
</td>
</tr>
</table>
<% end %>
答案 0 :(得分:1)
您可以嵌套包含这样的参数。
@projectschedule = ProjectDate.where(project_id: params[:p]).includes(events: :user).order(the_date: :asc)
注意events: :user
,这将确保两个事件及其用户都急切加载。