Search code examples
ruby-on-railsransack

Rails ransack use between


I want search created_at between Date.today.beginning_of_day..Date.today.end_of_day

like

Order.search({created_at_between: Date.today.beginning_of_day..Date.today.end_of_day }).result

but is not work

How do i make to search created_at between dates?


Solution

  • config/initializers/ransack.rb

    Ransack.configure do |config|
      config.add_predicate 'between',
        arel_predicate: 'between',
        formatter: proc { |v|
          parts = v.split(',')
          OpenStruct.new(begin: parts[0], end: parts[1])
        },
        validator: proc { |v| v.present? },
        type: :string
    end
    

    Then created_at_between '2014-01-01,2014-01-02' works!