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

しかし、これは私のディスプレイに何も返しません。

db テーブルevent_commentに保存されている属性にアクセスする方法について何か提案はありますか? event_itemsどんな助けでも大歓迎です!

4

1 に答える 1