为Rails命名搜索gem

时间:2013-08-06 08:39:17

标签: ruby-on-rails ruby-on-rails-3 postgresql search ruby-on-rails-4

我需要能够在我的数据库中搜索部分名称。我可以在我的Rails项目中安装一个很好的宝石吗?例如,如果我搜索'mit',应该出现名称'Smith'。不是强制性的,但如果语音拼写也匹配也会很好,所以在找到'Mich'后会出现'Mitch'。如果昵称匹配,也将是一个很好的奖金。因此,搜索'Jim'会提出'James'。

我正在使用Heroku和PostgreSQL。我可以使用PostgreSQL特定的代码来完成上述任务。

3 个答案:

答案 0 :(得分:1)

有一个非常好的宝石用于搜索meta_search。

https://github.com/ernie/meta_search

它提供了搜索内容的适当帮助。就像你想通过输入'mit'找到名为'Smith'的用户记录一样。你可以:

在控制器中:

class UsersController < ApplicationController

  def index
    @search = User.search(params[:search])
    ....
  end
  ...
end

在视图中:

<%= form_for @search do |f| %>
  <%= f.label :name_contains, 'Name' %>
  <%= f.text_field :name_contains %>
  <%= f.submit 'Search' %>
<% end %>  

答案 1 :(得分:0)

当您使用postgresql时,我建议您通过textacular

使用其搜索功能

您将在自述页面上找到安装和使用它所需的一切。

答案 2 :(得分:0)

也许您可以使用this railscast作为指南。是专业剧集,所以如果您没有专业版帐户,无论如何您都可以查看github中的代码。