通过使用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 :(得分:0)
您可以使用以下代码作为参考,我在created_at字段上尝试了这个,它对我有效。
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,如果以上代码不适合你,你可以查看。