Проверить столбцы MetaSearch

Что касается MetaSearch, я хотел бы извлечь "человеческие" имена из параметров поиска. Например, если params[:search] имеет непустые значения для следующего:

- title_contains

- author_name_contains

Я хотел бы извлечь:

- title

- author name

Конечное использование будет заключаться в предоставлении дополнительной обратной связи пользователю, такой как:

Results filtered on title and author name

Я хотел бы использовать функции в библиотеке MetaSearch для достижения этой цели вместо того, чтобы заново разрабатывать синтаксический анализ параметров. Хотя приведенные выше примеры в Ruby просты, язык параметров MetaSearch может быть выразительным.

Спасибо


person jrhicks    schedule 23.03.2011    source источник


Ответы (1)


Если вы действительно хотите получить их из объекта MetaSearch, вы можете сделать что-то вроде:

@search.search_attributes.except('meta_sort').select {|k, v| v.present?}

Однако я не совсем уверен, что вы что-то выиграете, вытащив это напрямую из параметров. В любом реальном использовании вы, вероятно, захотите изменить отображаемый текст на основе предиката.

Вместо этого вы можете решить эту проблему с помощью i18n:

http://rdoc.info/github/ernie/meta_search/master/file/README.rdoc#Localization

person Ernie    schedule 23.03.2011
comment
Спасибо за предложение использовать i18n для решения этой проблемы. - person jrhicks; 23.03.2011
comment
Чтобы очеловечить параметры, я использовал @search.class.human_attribute_name(k) - person jrhicks; 24.03.2011