我在使用 postgres 作为数据库的 rails 3.2 应用程序中使用ransack进行搜索。
我有一个发票模型,每张发票都属于一个买家。以下是我在索引页面中的搜索表单。
意见/发票/index.html.erb
<%= search_form_for @search do |f| %>
<%= f.text_field :buyer_name_cont %>
<%= f.submit "Search"%>
<% end %>
这是我的控制器代码。
控制器/invoices_controller.rb
def index
@search = Invoice.search(params[:q])
@invoices=@search.result(:distinct => true).paginate(:page => params[:page], :per_page => GlobalConstants::PER_PAGE )
respond_to do |format|
format.html # index.html.erb
format.json { render json: @invoices }
end
end
假设有一个名为“蝙蝠侠”的买家的发票。
如果我搜索“蝙蝠”,我会在结果中获得发票。如果我再次搜索“Man”,我会在结果中得到发票。但是如果我搜索“蝙蝠侠”,我不会在结果中得到发票。
我知道这可能是微不足道的,但我无法解决。
更新
当我尝试使用pgAdmin直接在数据库中形成的sql查询时,我意识到在数据库中买家名称中有多个空格,例如“Bat.space.space.space.Man”。
可以做些什么让“Bat.space.Man”搜索在结果中也找到“Bat.space.space.space.Man”吗?