没有将哈希隐式转换为字符串(Ruby)

没有将哈希隐式转换为字符串(Ruby),ruby,Ruby,当有人键入“!disconnect”时,我希望bot使用响应“PART##{CHANNEL}”断开连接 下面的代码段不是完整的代码,但是有end语句和所有内容 CHANNEL = "SomeChannelHere" prefix = "!" message = "!disconnect" commands = [ "disconnect" => "PART ##{CHANNEL}"] commands.each do |command| if message.inclu

当有人键入
“!disconnect”
时,我希望bot使用响应
“PART##{CHANNEL}”
断开连接

下面的代码段不是完整的代码,但是有
end
语句和所有内容

CHANNEL = "SomeChannelHere"
prefix = "!"
message = "!disconnect"

commands = [
    "disconnect" => "PART ##{CHANNEL}"]

commands.each do |command|
    if message.include?(prefix + command)
        response = commands[command]

如何获取响应?

您的
命令当前是一个哈希数组:

commands = ["disconnect" => "PART ##{CHANNEL}"]
#=> [{"disconnect"=>"PART #SomeChannelHere"}]
您必须使用
{…}
而不是
[…]

commands = {"disconnect" => "PART ##{CHANNEL}"}
#=> {"disconnect"=>"PART #SomeChannelHere"}
此外,
每个
块需要两个参数(key和value):


您的
命令当前是一个哈希数组:

commands = ["disconnect" => "PART ##{CHANNEL}"]
#=> [{"disconnect"=>"PART #SomeChannelHere"}]
您必须使用
{…}
而不是
[…]

commands = {"disconnect" => "PART ##{CHANNEL}"}
#=> {"disconnect"=>"PART #SomeChannelHere"}
此外,
每个
块需要两个参数(key和value):


您缺少散列的密钥:

commands.each do |command|
 p command["disconnect"]
 p command.has_key?("disconnect")
end

您缺少散列的密钥:

commands.each do |command|
 p command["disconnect"]
 p command.has_key?("disconnect")
end

我无法重现你的问题。我在尝试验证您的代码时遇到多个语法错误。我无法重现您的问题。我在尝试验证代码时遇到多个语法错误。