【问题标题】:How to write a condition when a date field should be sorted according to date filters in rails?当应根据rails中的日期过滤器对日期字段进行排序时,如何编写条件?
【发布时间】:2015-08-25 10:04:55
【问题描述】:

我有一个名为 start_date 和 end_date 的日期过滤器,我必须根据此过滤器对联系人进行排序,并根据 created_at(日期字段)进行排序。

这是我列出所有记录的方法:

  def execute_records
    @items = []
    if @params[:category_id] && !@params[:category_id].empty?
      contacts = Contact.joins(:company).where(active: true, account_id: @user.id, companies: {category_id: @params[:category_id], active: true})
    else
      contacts = Contact.joins(:company).where(active: true, account_id: @user.id, companies: {active: true})
    end
    contacts.includes(company: [:addresses, :category, :lead_source]).each do |contact|
      @items << Report.new(contact) if contact.is_a?(Contact)
    end
  end

在上述方法中,我只是想添加一个条件,其中 created_at 介于 start_date 和 end_date 之间。 created_at 是联系人表中的字段。

请帮帮我..

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我认为你需要这个:

    Contact.joins(:company).where(active: true, account_id: @user.id, companies: {created_at: Time.new(params[:start_date] || 0)..Time.new(params[:end_date] || Time.new(3000))})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多