如何按日期和日期搜索模型

时间:2016-07-16 10:49:43

标签: ruby-on-rails ruby activerecord ruby-on-rails-5

通过使用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

我需要更改哪些内容才能确保我可以在时间戳字段中搜索日期和日期?

1 个答案:

答案 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,如果以上代码不适合你,你可以查看。