Mam następujący kod w moim Rails 3 Zastosowanie:Porównaj Time.now in Rails, ale ignoruj rok?
scope :active, lambda {
where("starts_at <= ? AND ends_at >= ?", Time.now.utc, Time.now.utc)
}
scope :since, lambda { |hide_time|
where("updated_at > ? OR starts_at > ?", hide_time.utc, hide_time.utc) if hide_time
}
def self.display(hide_time)
active.since(hide_time)
end
Jednak chcę zwrócić wyniki, niezależnie od tego, czy rok pasuje obecny rok, czy nie. Dopóki dzień i miesiąc pasują, wszystko jest w porządku. czy to możliwe?
W starts_at
i ends_at
kolumny są datetime
sformatowana. Więc automatycznie uwzględnią rok, nawet jeśli nie ustawię jednego w postaci:
<%= f.datetime_select :starts_at, :order => [:day, :month], :discard_year => true %>
Wszelkie wskazówki byłyby mile widziane.
mógłby zrobić prostą SQL dla tego jednego . – omarvelous
Z jakiego RDBMS korzystasz? –
Zakładam, że to oznacza typ bazy danych? Jeśli tak, to mySQL – dannymcc