gpt4 book ai didi

ruby-on-rails - 在 Rails 中,Ransack 搜索在尝试按 ID 过滤时给出错误 `PG::UndefinedFunction: ERROR: operator does not exist`

转载 作者:行者123 更新时间:2023-12-04 06:01:41 29 4
gpt4 key购买 nike

我正在尝试按 ID 过滤记录。这是我的搜索表单:

<%= search_form_for @search, url: dash_orders_path, id: 'searchForm' do |f| %>
<div class="col-md-4 margin-top-15">
<%= f.search_field :id_cont, class: 'form-control', placeholder: 'Order id' %>
</div>
<span class="button-sec pull-left width-wide center-text searchBtn">
<%= f.submit "Search", class: "button-big blue" %>
<%= f.submit "Clear", class: "button-big red", onclick: "$('#searchForm')[0].reset();" %>
</span>
<% end %>

当尝试进行搜索时,它会给出如下错误:

PG::UndefinedFunction: ERROR:  operator does not exist: integer ~~* integer
LINE 1: ...CT "orders".* FROM "orders" WHERE ("orders"."id" ILIKE 0) ...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
: SELECT "orders".* FROM "orders" WHERE ("orders"."id" ILIKE 0) ORDER BY "orders"."updated_at" DESC LIMIT 2 OFFSET 0

可能是什么问题?

最佳答案

让您继续将您的 id 与 ransack 的 cont 谓词一起使用。将此添加到您的订单模型中:

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

掠夺者方法允许您执行自定义搜索,在本例中为 this ransacker wiki说,ranasacker 方法可以避免输入的歧义,如果您使用的是 MySQL,则情况会有所不同。

希望这对您有所帮助。

关于ruby-on-rails - 在 Rails 中,Ransack 搜索在尝试按 ID 过滤时给出错误 `PG::UndefinedFunction: ERROR: operator does not exist`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32477415/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com