私は今、Ruby on Rails でほぼ 4 週間働いているので、私を初心者と考えてください。
条件付き検索クエリを実行するとき、整数の一部 (文字列に入れる..) を別の整数と比較する必要があります。
@invs = Inv.find(:all, :conditions => {:cnr => INTEGER_TO_BE_COMPARED_TO })
さて、整数の特定の部分を取得する方法を見つけて、次のメソッドを書きました。
def get_part_of_int @r = Integer((@cnr % 10000000)/100000.0) @r = "%02d" % @r @r.to_s 終わり
これにより、次の出力が得られるはず@r = 01
です@cnr = 40138355
ターゲットはinvs
、たとえば01
2 桁目と 3 桁目のみで表示することです。
私が使用している:
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' })
列の値の一部をたとえばと比較する方法はあります01
か?
逆に考えた方がいいのかな。cnrs
2桁目、3桁目などで検索することはでき01
ますか?トリックは、これらの数字が常に 2 桁目と 3 桁目であるということです。たとえば、Solr を使用したあいまい検索は機能01
しないと思いますcnr
40594013
。
これは何らかの方法で行うことができますか?
事前に感謝し、混乱させて申し訳ありません.