0

我有一个看起来像这样的控制器:

class EventController < ApplicationController
  def index
    ...
    @events = Event.where(['eventdate < ?', DateTime.now]).order("eventdate")
    ...
  end
end

我的模型定义了以下关系:

class Event < ActiveRecord::Base
  ...  
  has_many :match_items, dependent: :destroy
  ...
end

我现在正在尝试访问链接到@event在我的视图中的实例变量中定义的事件的 event_items,如下所示:

<h2>Your Events</h2>
<% @events.each do |event| %>​
  </br>​&lt;span>​
    <%= event.eventdate.to_formatted_s(:rfc822) %> 
    <%= event.event_items.event_comment %>
​  </span>
<% end %>

event.event_items.event_comment行引发错误:undefined method 'event_comment' for []:ActiveRecord::Relation

为什么我不能event_comment作为一种方法访问?

如果我只使用event.event_items该行,则不会显示错误并显示整个 event_items 数组,其中所有内容都显示在我的视图中。

所以我想也许我可以通过以下方式访问event_comment数组的一部分:

<%= event.event_items.event_comment[i] %> #where i is the index of event_comment in the array

但这不会在我的显示中返回任何内容。

关于如何访问event_comment存储在我的event_items数据库表中的属性的任何建议?很感谢任何形式的帮助!

4

1 回答 1

1

您收到该错误的原因是因为event.event_items返回 aActiveRecord::Relation而不是EventComment. 尝试使用:

event.event_items.first.event_comment
于 2013-08-03T00:25:07.873 回答