Rails - Ransack - Пользовательский attribute_select

Я использую гем ransack со своим приложением Rails для расширенного поиска. Как я могу отфильтровать метод attribute_select, чтобы не отображать определенные поля, такие как id и created_at и т. д.

= f.attribute_fields do |a|
  = a.attribute_select

Мой текущий метод выше просто перечисляет все атрибуты.


person ardavis    schedule 07.11.2012    source источник


Ответы (2)


Согласно Почему ваш Ruby макросы класса (могут) отстой (у меня был):

def self.ransackable_attributes(auth_object = nil)
  super - ['id', 'created_at']
end
person Lukas Svoboda    schedule 07.11.2012

Вы также можете определить доступные для поиска атрибуты, а не указать недоступные для поиска, например:

def self.ransackable_attributes(auth_object = nil)
    %w( searchable_attribute_goes_here another_one_goes_here ... ) + _ransackers.keys
end
person 1337lims    schedule 19.12.2012