33638


rubyの文に直書きでクエリを書き、そのdbからもってきた文字列を条件にかけて検索しようとしているのですが、持って来ている値が同じに関わらず、if文で条件がtrueになりません。  
下記のようなコードなのですが、どこがおかしいのかご教授いただけないでしょうか？  
条件の部分は、一番下の行の箇所となります。

[code]

    $db = Mysql2::Client.new(:host => 'localhost', :user => 'root', :password => '')
    usedb = $db.query(%q{use ruby_nfcpy;})
    
    $select_column = $db.query(%q{select id, name, idm, status from users;})
    $select_name = $db.query(%q{select name from users;})
    $select_idm = $db.query(%q{select idm from users;})
    $select_status = $db.query(%q{select status from users;})
    
    loop do
      unlock_user_id = idm(nfc)
    
      p unlock_user_id
      $select_idm.each do |user|
        user.each do |key, value|
          p value.to_i
          if value == unlock_user_id
    
[/code]

pメソッドで表示したクエリの文字列は以下のようになります。

[![画像の説明をここに入力](https://i.stack.imgur.com/fYe9f.png)](https://i.stack.imgur.com/fYe9f.png)


CC BY-SA 3.0
2017-03-29T09:03:55.443
33633
2017-03-29T13:14:26.987
2020-06-17T08:14:45.997
-1
13491
question
ruby mysql
rubyにクエリを書き、持って来た文字列が条件検索に失敗する


`p value.to_i` しているのに比較のときは`.to_i`していないのが気になります。  
比較しているもの通しのクラスは同じでしょうか？

[code]

    a = 1
    b = "1"
    
    p (a == b) #=> false
    
[/code]

以下のように正しく比較できるように型を合わせてください。

[code]

    a = 1
    b = "1"
    
    p (a == b.to_i) #=> true
    
[/code]


CC BY-SA 3.0
2017-03-29T13:14:26.987
33638
2017-03-29T13:14:26.987
9008
33633
answer