我现在在 Ruby on Rails 上工作了将近 4 周,所以将我视为初学者。
在执行条件查找查询时,我需要将整数的一部分(放入字符串中......)与另一个整数进行比较。
@invs = Inv.find(:all, :conditions => {:cnr => INTEGER_TO_BE_COMPARED_TO })
好吧,我找到了一种方法来获取整数的某个部分,并编写了以下方法:
def get_part_of_int @r = 整数((@cnr % 10000000)/100000.0) @r = "%02d" % @r @r.to_s 结尾
这应该给出@r = 01
输出@cnr = 40138355
目标是仅显示invs
为01
第二个和第三个数字。
我正在使用:
Rails 3.2.8
Ruby 1.9.3p194
谢谢大家。
==编辑:==
我意识到我的帖子中没有问号..而且有些混乱。
列名的值cnr
应该被剥离到第 2 位和第 3 位,并与字符串进行比较,例如01
.
谢谢@Salil 的建议。
但是这不起作用..但我了解使用它的方式。下面将字符串转换:cnr
为:nr
.
Inv.find(:all, :conditions => {:cnr.to_s[1,2] => '01' })
有没有办法将列的一部分值与 eg 进行比较01
?
也许我应该反过来想。是否可以使用第 2 位和第 3 位进行搜索,cnrs
例如01
?诀窍是这些数字始终是第 2 位和第 3 位。我假设使用例如 Solr 的模糊搜索不起作用,因为在搜索时01
我不想要cnr
40594013
.
这可以以某种方式完成吗?
提前感谢您,我很抱歉让您感到困惑。