【发布时间】:2011-10-24 19:34:25
【问题描述】:
我正在使用 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 %>
</div>
现在,我想连接这个搜索表单,这样,如果与搜索查询完全匹配或接近匹配,用户会被直接路由到显示该食物信息(来自数据库)的页面.如果没有完全匹配,我希望向用户显示结果页面以及每个结果的营养页面链接。
如何实现此功能?我尝试在 Google 上搜索有关使用 Rails 实现搜索的文章,并且还观看了截屏视频,但我找到的资源都没有实现我想要的。
到目前为止,这里是项目的 GitHub 链接:https://github.com/robertseaton/nutrition-project。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1