0

我将 Rails API 应用程序转换为普通的 Rails 应用程序,没有问题。然后它开始给我一些问题,在使用相同的代码之前它工作得很好。

我有一个 Telegram 机器人,Telegram 将 POST 请求发送到我的 Rails 应用程序。所以,我有这个代码来转换哈希中的参数:

message = params[:message].to_unsafe_h

我开始记录,所以我这样做:

logger.debug message.to_yaml
logger.debug message[:text]

它正确返回

D, [2019-08-11T15:39:14.955103 #13713] DEBUG -- : [56fbc12a-ad66-46d6-956d-94870d3ca0ec] --- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
update_id: 200421708
edited_message: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
message_id: 37769
from: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
  id: 85039287
  is_bot: false
  first_name: Dennis
  last_name: Radaelli
  username: Radden
chat: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
  id: -1001447558052
  title: WIKINETWORK OT - FERDINANDO PADANIA VI FANNO IMPAZZIRE
  type: supergroup
date: 1565477411
edit_date: 1565477416
text: Vada! Vada!
 D, [2019-08-11T15:39:15 #13714] DEBUG -- : Vada! Vada!

但是,如果我这样做if message[:text] =~ /asd/i,它会返回我No method error, undefined method [] for Nil:NilClass。但这不是零!它在几秒钟前正确地说。

疯了吧。我已经花了 3 个小时进行测试,但我不明白为什么。在此先感谢您的帮助。

4

0 回答 0