私は今、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、たとえば012 桁目と 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か?
逆に考えた方がいいのかな。cnrs2桁目、3桁目などで検索することはでき01ますか?トリックは、これらの数字が常に 2 桁目と 3 桁目であるということです。たとえば、Solr を使用したあいまい検索は機能01しないと思いますcnr 40594013。
これは何らかの方法で行うことができますか?
事前に感謝し、混乱させて申し訳ありません.