ruby on rails -从集合的子集中获取数据



我有一个名为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上而不是在事件上达到该日期的想法?

如果存在关联,可以将其命名为

registered.event_rsvps.first.date

这将返回与注册的event_rsvps关联的第一个对象的日期。

如果您需要接收所有相关event_rsvps的日期集合,您需要像下面这样map它们:

registered.event_rsvps.map(&:date)

相关内容

  • 没有找到相关文章

最新更新