Thinking Sphinx Глобальный поиск Все модели

Я запускаю sphinx, думая о sphinx, и у меня есть базовая система заказов с компаниями, пользователями, заказами, заметками, комментариями среди прочего.

TS работает нормально, поиск по отдельным моделям и их вложенным ресурсам работает блестяще.

Что я хотел сделать, так это иметь форму глобального поиска в моем заголовке (application.html.erb). Проблема в том, куда отправляется моя форма.

<%= form_tag companies_path, :method => 'get', :id => "companies_search" do %>
  <p>
    <%= text_field_tag :search, params[:search] %>
    <%= submit_tag "Search", :name => nil %>
  </p>  
<% end %>

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

Можно ли создать динамическую альтернативу company_path?

Или я должен создать какой-то специальный макет?

Что здесь делают все остальные?


person Jenny Blunt    schedule 06.07.2011    source источник


Ответы (1)


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

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

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

person pat    schedule 07.07.2011
comment
Спасибо за ответ @pat. Начинает действительно задумываться, действительно ли хлопоты того стоят. Может быть, будет проще проиндексировать мои модели отдельно. Точно сказать не могу....... - person Jenny Blunt; 07.07.2011