使用Ransack通过ID查找记录

问题描述 投票:1回答:1

我正在使用使用ransack的rails应用程序。我目前在其中一个视图中有错误。错误读取

对于course_id没有有效的谓词

经过研究,解决方案似乎是将id列从整数转换为字符串。我在网上看到了这段代码,但我对于将代码放入哪个文件感到困惑

  ransacker :id do
    Arel::Nodes::SqlLiteral.new(
    "regexp_replace(to_char(\"#{table_name}\".\"id\", '99999999'), ' 
    ', '', 'g')"
    )
  end

这是我的ransack.rb文件

ENV["RANSACK_FORM_BUILDER"] = "SimpleForm::FormBuilder"

require "ransack"
Ransack.configure do |config|
  config.ignore_unknown_conditions = false
end

在我的erb文件中,我有

<%= simple_search_form_for @ransack do |f| %>
  <div class="row">
    <div class="col-md-4">
      <%= f.input :id_eq %>
      <%= f.input :title_cont %>
    </div>
  </div>
ruby-on-rails ruby ruby-on-rails-4 rubygems ransack
1个回答
0
投票

在你的搜索者中尝试这个:Arel.sql("CONVERT(course.id, CHAR(7))")

© www.soinside.com 2019 - 2024. All rights reserved.