如何用Ransack按工资排序并忽略美元符号?

时间:2018-02-12 08:26:07

标签: ruby-on-rails ruby ransack

我目前正在尝试使用 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

1 个答案:

答案 0 :(得分:1)

这里正确的方法是迁移您的数据库,以便将薪资详细信息存储为数字值而不是带格式的字符串。