Я следую инструкциям, упомянутым здесь Rails 3: sunspot solr : добавление возможности поиска для каждой страницы
Однако, похоже, это не работает для меня. Я пытаюсь реализовать функцию поиска, похожую на твиттер, где панель поиска остается вверху на панели навигации, и можно выполнить поиск на любой странице в приложении, и он приведет их на страницу результатов поиска.
Когда я передаю поисковый запрос в браузере, находясь на главной странице сообщений (views/posts/index.html.erb)
http://localhost:3000/post?utf8=%E2%9C%93&search=test&commit=Search
Он возвращает желаемые результаты поиска. Но когда я нахожусь на какой-то другой странице приложения и пытаюсь выполнить поиск, он формирует URL-адреса в адресной строке, подобные упомянутым ниже, и никогда не переходит к поиску через окно поиска в верхней панели навигации, объявленной в представлениях/макетах/ страница application.html.erb.
http://localhost:3000/users/1/following?utf8=%E2%9C%93&search=test&commit=Search
http://localhost:3000/posts/1/favorite?utf8=%E2%9C%93&search=test&commit=Search
Вот подробности: -
Моя модель post.rb
searchable do
text :title, :tag_list
end
Мой контроллер — posts_controller.rb
def index
if params[:search]
@search = Post.search do
fulltext params[:search]
paginate :page => params[:page], :per_page => 5
end
@posts = @search.results
else
@posts = @posts.plusminus_tally({:order => "vote_count ASC"}).page(params[:page]).per(6)
end
respond_to do |format|
format.html
format.json { render json: @posts}
end
end
Вид — layouts/application.rb
<%= form_tag posts_path, :method => :get do %>
<div class="input-append">
<%= text_field_tag :search, params[:search] , :class => "span2 search-query", :style => 'width:200px' %>
<%= submit_tag "Search", :post => nil , :class => "btn" %>
</div>
<% end %>