0

我需要能够搜索我的数据库中的部分名称。有没有我可以安装在我的Rails项目中的好宝石来做到这一点?例如,如果我搜索'mit',应该出现一个名字'Smith'。不是强制性的,但如果拼音拼写也会很好,那么在搜索'Mich'后会出现'Mitch'。如果昵称匹配,也会是一个不错的奖励。因此,搜索'吉姆'会带来'詹姆斯'。Rails名称搜索gem

我使用Heroku和PostgreSQL。如果使用PostgreSQL特定的代码来完成上述操作,我会很好。

回答

0

当你正在使用PostgreSQL我会建议使用它的搜索功能,通过textacular

你会发现,你需要安装和使用它的自述页上的所有内容。

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 %> 
0

也许你可以使用this railscast作为指导。是一个亲集,所以如果你没有专业账户,无论如何你可以检查github中的代码。

+0

railscast很棒。虽然建议的机制不适用于搜索'mit'并且提出'Smith'。 –