我目前正在尝试使用 ransack gem 为我的rails项目创建多个排序函数。我与ransacker的问题是,我无法读取字符串的格式,因为它在一些帖子和逗号中也有一个($)。我想要做的仍然是对数据属性进行排序,并忽略$ conditional美元符号和千位置逗号(在某些情况下可能不包括)&追加来自搜索框的当前输入
例如:
string =“$ 30,000” - >解析以删除$并仅为搜索引擎留下30000以查找包含该数字的记录。在search_form输入(job.job_title)中写的是什么。我写的代码如下,它可能不正确,因为我尝试了多种方法。最终结果:Ransack应该搜索“30000营销职位”
rails视图
<li>$30,000+ <%= sort_link(@q, :salary_between_30_and_40k, default_order: :desc) %></li>
job.rb
ransacker :salary_between_30_and_40k do
Arel.sql('SELECT * FROM JOBS WHERE job.hourly_wage_salary BETWEEN 30000 AND 40000')
end
答案 0 :(得分:1)
这里正确的方法是迁移您的数据库,以便将薪资详细信息存储为数字值而不是带格式的字符串。