我现在在 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.
这可以以某种方式完成吗?
提前感谢您,我很抱歉让您感到困惑。