2016-07-16 3 views
0

Используя видео railscast, я создаю простой поиск, который работает на той же модели. И у меня есть поля для даты, дня и времени.Как искать модель по дате и дню

моя модель

class Sale < ApplicationRecord 
    belongs_to :washer, optional: true 
    belongs_to :location, optional: true 

    has_many :sale_services 
    has_many :services, :through => :sale_services 

    def day 
    created_at.strftime('%A') 
    end 

    def time 
    created_at.strftime("%H:%M") 
    end 

    def date 
    created_at.strftime('%F') 
    end 


def self.search(search) 
    if search 
     key = "'%#{search}%'" 
     columns = %w{ city station venue area country plate_number } 
     joins(:services).joins(:washer).joins(:location).where(columns.map {|c| "#{c} ILIKE #{key}" }.join(' OR ')) 
    else 
     where(nil) 
    end 
    end 
end 

Что мне нужно изменить, чтобы быть уверенным, что я могу найти день и дату на поле метки времени?

ответ

0

Вы можете использовать следующий код в качестве ссылки, я пробовал это на созданном поле ant, и это работает для меня.

Model.where('extract(year from date_column) = ?', desired_year) 
Model.where('extract(month from date_column) = ?', desired_month) 
Model.where('extract(day from date_column) = ?', desired_day_of_month) 

вот stackoverflowlink, которые вы можете просмотреть, если приведенный выше код не работает для вас.