Как реализовать поиск в базе данных с помощью Rails? - PullRequest
0 голосов
/ 24 октября 2011

Я работаю над своим первым сайтом, используя Ruby on Rails. Идея заключается в поисковой системе питания, где вы ищете продукт, а затем веб-приложение переносит вас либо на страницу с информацией о питании об этом продукте, либо на страницу результатов поиска, если точного соответствия не существует.

До сих пор я создал информационную базу данных о питании (используя postgresql) и добавил некоторые данные испытаний. Это команда, которую я использовал для создания леса для базы данных:

rails generate scaffold Food name:string calories:decimal portion_name:string \
portion:decimal image_url:string description:text

Затем я создал страницу индекса. Это команда, которую я использовал для создания индекса:

rails generate controller home index 

Я удалил public/index.html и изменил config/routes.rb, чтобы он содержал эту строку:

root :to => 'home#index'

После этого я добавил форму поиска в app/views/home/index.html.erb, например:

<div id="search">
  <h1>How many calories are in... ?</h1>
  <%= form_tag("/search", :method => "get") do %>
    <%= text_field_tag "q", nil, :class => "span6" %>
    <%= submit_tag("Go", :name => nil) %>
 <% end %>

Теперь я хотел бы подключить эту форму поиска, чтобы при наличии точного совпадения с поисковым запросом или близкого совпадения пользователь направлялся прямо на страницу с информацией (из базы данных) для этого продукта. , Если нет точного соответствия, я бы хотел, чтобы пользователю была представлена ​​страница результатов и ссылки на страницу питания для каждого результата.

Как я могу реализовать эту функцию? Я пробовал поискать статьи о реализации поиска с помощью Rails, и я также смотрел скринкаст, но ни один из найденных мной ресурсов не реализует то, что мне нужно.

Вот ссылка GitHub на проект: https://github.com/robertseaton/nutrition-project

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Вы также можете использовать солнечное пятно, чтобы удовлетворить ваши потребности поиска.Вот ссылка github на солнечное пятно https://github.com/sunspot/sunspot.

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

Вики-пятно на github имеет много ресурсов, чтобы начать работу, и это очень интуитивно понятно:).

Спасибо,

0 голосов
/ 24 октября 2011

Я использую Thinking-Sphinx для поиска в Rails - Sphinx - это сервер поиска с открытым исходным кодом. Вы можете определить, как вы хотите, чтобы ваш поиск работал прямо в Rails.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...