2016-08-15 9 views
0

このコードはコントローラから来ます(class MainController < ApplicationController)コンソールでは、puts wallMessage.messagedestinyputs current_user.idの内容を見ることができますが、次の行には値が同じ文の中に何も表示されません。コード:if文が実行されなかった場合もし文章がRailsの場合

Message.each do |wallMessage| 
     puts wallMessage.messagedestiny 
     puts current_user.id 
     if wallMessage.messagedestiny == current_user.id # <-- from here don't show anything from the following content in the sentence 
      puts "*** entra en el each y devuelve el wallMessage" 
      puts wallMessage 
      @wallMessages.push(wallMessage.messagecontent) 
      User.find_by(id: wallMessage.messagesender) do |messageSender| 
      @messageSenders.push(messageSender.username) 
      end 
     end 
     end 
+0

あなたの質問を言い換えてください。あなたが求めていることはまったく不明です。 –

+0

が編集されました。 –

+0

'wallMessage.messagedestiny'と' current_user.id'の出力はどうでしたか? –

答えて

1

、その明確な値のtypeは一致していないこと。

これを試してください。あなた自身で確認してください。

puts wallMessage.message‌​destiny.class # displays the type of object 
puts current_user.id.class 

または

puts wallMessage.message‌​destiny.class == current_user.id.class 

あなたは他の値のいずれかのtypeを変換し、それらを比較することができます。解決

0

if wallMessage.messagedestiny == String(current_user.id) # <-- Solution is convert to String cause current_user.id.class on console returned a BSON object 
      puts "*** entra en el each y devuelve el wallMessage" 
      puts wallMessage 
      @wallMessages.push(wallMessage.messagecontent) 
      User.find_by(id: wallMessage.messagesender) do |messageSender| 
      @messageSenders.push(messageSender.username) 
      end 
     end 
+1

また、整数を文字列に変換するには、' current_user.id.to_s'を使用することができます。 キーストロークが少ない。 –

関連する問題