0

我需要帮助编写一个查询来检查event某个日期是否发生。

一个eventhas_many days,并且day有一个名为的属性: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 回答