获取PG :: UndefinedFunction:ERROR:运算符不存在:整数~~ *整数

时间:2015-08-02 18:08:26

标签: ruby-on-rails postgresql pg ransack

我尝试使用ransack进行简单搜索但是当我执行搜索时出现以下错误:



ActiveRecord::StatementInvalid in GrupoFamiliars#index

PG::UndefinedFunction: ERROR:  operator does not exist: integer ~~* integer
LINE 1: ...rupo_familiars" WHERE ("grupo_familiars"."numero" ILIKE 0) L...
                                                             ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
: SELECT  "grupo_familiars".* FROM "grupo_familiars" WHERE ("grupo_familiars"."numero" ILIKE 0) LIMIT 20 OFFSET 0



 这是我的代码

def index
  @search = GrupoFamiliar.search(params[:q])
  @grupo_familiars = @search.result.paginate(:page => params[:page], :per_page => 20)
end

<%= search_form_for @search,url: grupo_familiars_path, :class => "form-inline", :builder => SimpleForm::FormBuilder do |f| %>
  <%= f.number_field :numero_cont, :class => "form-control", placeholder: "Numero" %>
  <button type="submit" class="btn btn-default">Buscar</button>
<% end %>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试将此添加到您的模型中:

class GrupoFamiliar
  # your code and stuff
  # ...

  private

  ransacker :numero do
    Arel.sql("to_char(\"#{table_name}\".\"numero\", '99999')")
  end
end