Я собираю сайт рельсов 3 репозитория. У меня установлен и работает Thinking Sphinx на моем сайте, поскольку я могу вводить URL-адреса, такие как localhost:3000/articles?search=test&page=2
, и он возвращает ожидаемые результаты.
Я новичок в Rails (и в веб-разработке в целом); Я думаю, что могу управлять аспектами модели и контроллера, но представления до сих пор меня поставили в тупик. У меня есть боковая панель, которую я хотел бы использовать в качестве интерфейса поиска. Самое близкое, что я нашел, это (отображено как часть частичной боковой панели):
<% form_tag @search, :method => :get do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search"%>
<% end %>
Метод поиска находится в моем контроллере article#index, и когда я тестирую его, когда браузер указывает на эту страницу (маршрутизируется как /articles
), он работает, как и ожидалось, но с этим странным URL-адресом: localhost:3000/articles?utf8=✓&search=test&commit=Search
. Когда браузер впервые указывает на корневой путь, ничего не происходит.
Итак, я думаю, что это основные проблемы, которые мне нужно решить:
- РЕДАКТИРОВАТЬ - решено (см. ниже)
- Должен ли я переместить методы поиска в отдельный контроллер или они должны быть частью контроллера статей? На данный момент Article будет единственной проиндексированной моделью.
- РЕДАКТИРОВАТЬ - решено (см. ниже)
- Есть ли у кого-нибудь хороший пример кода многогранного представления поиска с использованием Rails 3 и Thinking Sphinx? Как я уже сказал, я в некотором роде новичок, и меня немного смущает документация, которая бегло просматривает реализацию представления. Тем не менее, я неплохо разбираюсь в чтении и интерпретации кода, если он достаточно завершен.
Заранее спасибо!
Решено:
Как сделать так, чтобы кнопка «Поиск» вызывала метод index перед попыткой поиска? (Я решил это, заменив
@search
наarticles_path
).Решено с помощью
will_paginate
, с которым у меня раньше были проблемы, но теперь он работает.