0

event特定の日付に発生するかどうかを確認するクエリを作成するのに助けが必要です。

has_manyにeventは、アクセスしようとしているという属性がありますが、アクセスできないようです。daysday:date

コード:

class Event < ActiveRecord::Base
  attr_accessible :title, :days_attributes

  has_many :days
  accepts_nested_attributes_for :days

  scope :occurs_on, lambda {|date| where(Day.first.date => date)}
end

class Day < ActiveRecord::Base
  attr_accessible :date, :event_id
  belongs_to :event

  validates :date, presence: true
end

class EventsController < ApplicationController
  def index
    @events = Event.occurs_on(Date.today)
  end
end

私の見解では、次のように日付を表​​示できます。<%= event.days.first.date.strftime("%A, %B %e") %>そのため、私のモデルではうまくいくと思いましたが、うまくいきません。undefined method 'to_sym'エラーが発生します。

ありがとう!

4

1 に答える 1

0

私があなたの質問を正しく読んでいるなら、joinあなたはあなたの範囲でやりたいと思うでしょう:

class Event < ActiveRecord::Base
  attr_accessible :title, :days_attributes

  has_many :days
  accepts_nested_attributes_for :days

  scope :occurs_on, lambda {|date| joins(:days).where("days.date = ?", date)}
end
于 2013-11-11T01:32:17.337 に答える