我正在使用使用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>
在你的搜索者中尝试这个:Arel.sql("CONVERT(course.id, CHAR(7))")
。