anchor.diff:      # 'created_at is before 2 weeks ago' is much easier to understand.
       alt_predicate_label_or_default: (p, type, default_label) ->
         return default_label unless Ransack?.alt_predicates_i18n?
  -
         alt_labels = {}
         switch type
           when "date", "datetime", "time"
  
positive.code:               obj
              results: (data, page) ->
                {results: $.map(data, (text, id) -> {id: id, text: text}) }
        else
          predicate_select2.show()
          # If Select2 is on query input, remove and set defaults
          if query_select2 = this.element.find('#s2id_' + base_id + 'v_0_value')
            query_input.select2('destroy')
            query_input.val('')
            previous_val = ''
  
negative.code:     options: {}
  
      _create: ->
        el = @element
        el.on 'click', '.add_fields',                $.proxy(@add_fields, this)
        el.on 'click', '.remove_fields',             $.proxy(@remove_fields, this)
        el.on 'change', 'select.ransack_predicate',  $.proxy(@predicate_changed, this)
        el.on 'change', 'select.ransack_attribute',  $.proxy(@attribute_changed, this)
        el.on 'change', 'input.ransack_query_multi', $.proxy(@multi_query_changed, this)
  
        # Store initial predicates and set up Select2 on select lists in .filters
        containers = el.find('.filters')
        @init_select2(containers)
        @store_initial_predicates(containers)
  
        # show spinner and disable the form when the search is underway
        el.find("form input:submit").click $.proxy(@form_submit, this)
  
        # Fire change event for any existing selects.
        el.find(".filters select").change()
  
      attribute_changed: (e) ->
        target = $(e.currentTarget)
  