Active_admin и: фильтр - PullRequest
       26

Active_admin и: фильтр

3 голосов
/ 19 февраля 2012

Проблема заключается в следующем: фильтр: контакт,: как =>: строка работает успешно, если я наберу идентификатор для контакта.Но это не практично, если у вас более 2000 контактов.Как я могу успешно фильтровать: контакт, как =>: строка, но он ищет: имя вместо: идентификатор.

Я попытался следующее безуспешно:

filter :contact, :as => :string, :collection => proc {Contact.where(:name => 'Paul' )}
filter :contact, :as => :string, :collection => proc { (Contact.order.all).resources{|c| [c.name]}} 

Примечание: мой репозиторий можно найти здесь .

Модель: order.rb

belongs_to :contact

Миграция:

def change
create_table :orders do |t|
  t.string :tag
  t.text :description
  t.string :technician_id
  t.string :status
  t.string :type
  t.string :contact_id
  t.string :business_id

  t.timestamps
end

end

admin / orders / - orders.rb

filter :business
filter :contact, :as => :string, :collection => proc { (Contact.order.all).resources{|c| [c.name]}}

filter :tag
filter :description, :label => "Status"
filter :created_at

index do   
  column :business
  column :contact
  column :tag
  column :status
  column :description, :sortable => false do |order|
  truncate(order.description, :length => 30)
end  

1 Ответ

3 голосов
/ 19 февраля 2012

Activeadmin использует гем meta_search, поэтому попробуйте это:

filter :contact_name, :as => :string
...