我有一个名为registered的集合。以下是控制器中的代码:
@rsvped_events = @volunteer.events.includes(:event_rsvps, :rsvp_users, :shifts).current.paginate(:page => params[:page], :per_page => 3)
以下是视图中的代码:
<% unless @rsvped_events.empty? %>
<%= render :partial => "registered", :collection => @rsvped_events %>
<%= will_paginate @rsvped_events %>
和部分:
<li><%= registered.date %></li>
<li><%= link_to registered.name, event_path(registered) %></li>
当用户注册某个事件时,会将其记录在一个包含大量信息的event_rsvps表中。我遇到的问题是拉出event_rsvp的日期。我可以从事件本身中提取日期,但不能从event_rsvp中提取日期。如果事件跨越多天并且用户选择他们想要的那一天,则这些有时会有所不同。)
我已经尝试了以下各种结果,但没有任何效果:
registered.date #gives me the date of the event, but not the rsvp
registered.event_rsvp.date #undefined method `event_rsvp' for #<Event:0x007ff7cc9d2940>
registered.event_rsvps.date #undefined method `date' for #<ActiveRecord::Relation:0x007ff7d4fcea30>
但是,如果我进入Rails控制台,我可以通过
提取日期u = User.find(1)
u.event_rsvps.find(90).date
关于如何在event_rsvp上找到该日期的想法,而不是关于该事件?
答案 0 :(得分:1)
由于存在关联,您可以将其称为
registered.event_rsvps.first.date
这将返回与已注册的._ / p>关联的event_rsvps中第一个对象的日期
如果您需要接收所有相关event_rsvps的日期集合,则需要map
他们如下:
registered.event_rsvps.map(&:date)