Главная
Использование поискового движка Ferret в проектах Ruby on Rails. Версия в формате PDF Версия для печати Отправить на e-mail

Практически  любом web проекте сейчас используется поиск как стандартная опция. Мы научимся использовать механизм  полнотекстового поиска, который реализован в  Ruby on Rails в  плагине Ferret. Это делается очень просто и быстро. Итак, наши дальнейшие шаги будут такие:

 

1.       1. Устанавливаем в проект движок  с помощью такой команды в командной строке :

               gem install ferret

 

2.       2. Добавляем в класс  модели ActiveRecord , в которой и будет производиться поиск следующий код :

             class News < ActiveRecord::Base

            acts_as_ferret :fields => ['title','body']

            end

Этот код активизирует установленный плагин и  указывает поля в базе данных, которые буду использоваться для индексирования.

 

3.       3. Создаем простую форму поиска:

<%= start_form_tag({:action=> "search"}) %>

<b>Search:</b>

<%= text_field_tag :search  %>

<%= submit_tag (value = "Search", options = {}) %>

<%= end_form_tag%>

 

4.       4. В  классе контроллера создаем новый метод  «search»:

 

     class NewsController < ApplicationController

           def search

          query = params[:search]

          @results = News.find_by_contents(query)

          end

         end

 

5.       5. И на конец, еще один заключительный штрих – вывод результатов поиска:

 

        <h1>Search Results</h1>

        <% if @results %>

        <p>Your search:

 

         <p><%= params[:query] %></p>

     <%= @results.size %> Results:</p>

     <ul>

     <% @results.each { |result| %>

    <li><%= link_to result.title, :action => 'show', :id => result %></li>

    <% } %>

   </ul>

     <% end %>

 

Как видите, реализация поиска не отняла у нас слишком много времени. Подмигиваю

опубликовано
Добавить новыйПоиск
Добавить комментарий
Имя:
E-mail:
 
Веб-сайт:
Заголовок:
UBB-Код:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Security Image
Пожалуйста, введите проверочный код, который Вы видите на картинке.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

 
< Пред.   След. >


© www.aurov.com - Личный сайт Александра Юрова 2008 All rights reserved
Tags
путь отображается applications ignored register child namespace строка этого foundview reduce submit Установка getdefaultfolder onactionrestore private comboboxexitem ресурс новой gohome action usernotifier message agent смотрим необходимо формы kilobytes 98f7 myblogg

Joomla Modul

Главная
Статьи
Творчество
Галерея
Кто он-лайн
Сейчас на сайте:
Гостей - 5
Jx Random Quote
Lighting Design is the space between the photons. -- Benjamin Hay