我有一个看起来像这样的控制器:
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><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
db表中的属性event_items
的任何建议?非常感谢任何帮助!
答案 0 :(得分:1)
您收到该错误的原因是event.event_items
返回ActiveRecord::Relation
而不是EventComment
的实例。尝试使用:
event.event_items.first.event_comment