To enable select2 ajax search functionality you need to do the following:
f.input :category_id, as: :search_select, url: admin_categories_path,
fields: [:name, :description], display_name: 'name', minimum_input_length: 2,
order_by: 'description_asc'To use on filters you need to add as: :search_select_filter with same options.
If you want to use url helpers, use a proc like on the example
filter :category_id, as: :search_select_filter, url: proc { admin_categories_path },
fields: [:name, :description], display_name: 'name', minimum_input_length: 2,
order_by: 'description_asc'category_id: Notice we're using the relation field name, not the realtion itself, so you can't usef.input :category.url: This is the URL where to get the results. This URL expects an activeadmin collection Url (like the index action) or anything that uses ransack search gem.response_root: (optional) If a request tourlresponds with root, you can indicate the name of that root with this attribute. By default, the gem will try to infer the root from url. For example: ifurlisGET /admin/categories, the root will becategories. If you have a rootless api, you don't need to worry about this attribute.fields: an array of field names where to search for matches in the related model (Categoryin this example). If we give many fields, they will be searched with an OR condition.display_name: (optional) You can pass an optionaldisplay_nameto set the field to show results on the select. This will be the field read from the object on loading the form and also when reading data from the ajax response(on the JSON). It defaults to:nameminimum_input_length: (optional) Minimum number of characters required to initiate the search. It defaults to:1class: (optional) You can pass extra classes for your field.width: (optional) You can set the select input width (px or %).order_by: (optional) Order (sort) results by a specific attribute, suffixed with_descor_asc. Eg:description_desc. By default is used the first field in descending direction.
