Ruby,没有将 Symbol 隐式转换为 Integer

2024-02-28

昨天我已经在“没有将 Symbol 隐式转换为 Integer、Ruby https://stackoverflow.com/questions/38482973/no-implicit-conversion-of-symbol-into-integer-ruby”。我认为您需要更多信息来回答这个问题。这就是我再次询问的原因。我将系统从 ruby​​ 1.8.7 更新到了较新版本的 ruby​​ 2.3.1p112。

当我想运行测试时,我总是收到错误:致命:没有将符号隐式转换为整数

这是代码:

def element_switch_wago_do(step)
raise Rutema::ParserError, "Missing DO tag!" unless step.has_do?
raise Rutema::ParserError, "Missing DO value!" unless step.has_value?   
raise Rutema::ParserError, "Used DO value '#{step.value}' not supported [0||1 valid]!" unless ((0 == step.value.to_i) || (step.value.to_i == 1))

step.txt="Switch Wago DIGITAL output-pin #{step.do} to #{step.value}"
ip = "{WAGO_IP}"
port = "{WAGO_PORT}"
step.cmd = Litu::RubyCommand.new("switch_wago_do") do |cmd, context| 
    Litu::subst_template!(ip, context)
    Litu::subst_template!(port, context)
    Litu::subst_template!(step.do, context)    
    ModBus::TCPClient.new(ip, port.to_i) do |cl|
cl.with_slave(1) do |slave|
    slave.debug = false                         
    slave.write_single_coil(step.do.to_i,step.value.to_i)       end
end
end
end

class RubyCommand
    include Patir::Command
    attr_reader :cmd,:working_directory,:killProc
    def initialize params,&block
        @killProc=params[:killProc]
        @name=params[:name]
        @working_directory=params[:working_directory]||"."
        if block_given?
            @cmd=block
        else
            raise "You need to provide a block"
        end
    end

    #Runs the associated block
    def run context=nil
        @run=true
    begin
        t1=Time.now

        cmd = @cmd

        pwd = @working_directory
        p = Dir.pwd 
        puts "######: #{cmd}:"
        Litu::subst_template!(pwd, context)
        puts "before block in dir #{Dir.pwd}"

        Dir.chdir(pwd) do
            p = Dir.pwd 
            puts "in block in dir #{cmd}"
            @cmd.call(self, context)
            @status=:success
        end

        puts ":###### #{p}"

        rescue StandardError
            error << "\n#{$!.message}"
            error << "\n#{$!.backtrace}" if $DEBUG
            @status=:error
        ensure
            @exec_time=Time.now-t1
        end
        return @status
    end

    def kill!
        @killProc.call if @killProc
    end

    def to_s
        return @name
    end
end

如果我注释 RubyCommand 中的 3 行,我不会收到错误。

#@killProc=params[:killProc]
#@name=params[:name]
#@working_directory=params[:working_directory]||"."

问题出在数组和哈希上。但我不知道如何让这段代码运行。


你创造RubyCommand实例如

Litu::RubyCommand.new("switch_wago_do")

你有

def initialize(params, &block)

So params将是字符串相等"switch_wago_do".
但你希望它是哈希实例。

这就是为什么注释这些字符串可以解决问题。

@killProc=params[:killProc]
@name=params[:name]
@working_directory=params[:working_directory]||"."
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby,没有将 Symbol 隐式转换为 Integer 的相关文章

  • Rails 从视图中调用操作

    希望这里有一个简单的问题 但我似乎无法找到答案 刚刚开始使用 RoR 但之前来自 ASP MVC 我在渲染部分视图时遇到问题 其局部变量不一定与主视图的变量相关联 例如 对于一个博客 我试图渲染一个链接到存档的侧边栏 def sidebar
  • 如何检查一个数字是否包含在一个范围内(在一个语句中)?

    我正在使用 Ruby on Rails 3 0 9 我想检查某个数字是否包含在某个范围内 也就是说 如果我有一个变量number 5我想检查一下1 lt number lt 10并检索一个布尔值 如果number值包含在该范围内 我可以这样
  • Rails 3.2.3 命名空间控制器被同名的全局控制器覆盖

    当全局应用程序控制器首先加载时 命名空间应用程序控制器在加载该命名空间内的页面时不会加载 应用程序控制器如下所示 class ApplicationController lt ActionController Base protect fr
  • 用 ruby​​ 中的数组内容替换字符串?

    String Test string Test array link1 link2 如何替换这样的字符串 输出应该是String link1 string link2 字符串 gsub 可以返回一个枚举器 所以这很简单 string gsu
  • Rails 4 ExecJS::Listings#index 中的程序错误

    将 JavaScript 添加到我的网络应用程序后 我现在收到以下错误 ExecJS ProgramError in Listings index stdin 16 5 error unexpected else else in Users
  • Riod-iOS 错误:您没有写入权限“Gem::FilePermissionError”

    我已经下载了一个Riot iOS https github com vector im riot ios并遵循构建说明 当我跑步时 捆绑安装 回溯 最近一次调用 2 来自 usr bin bundle 23 in
  • Groovy 中的显式输入:有时还是从不?

    后来 仍然无法弄清楚 Groovy 是否具有静态类型 似乎没有 或者使用显式类型生成的字节码是否不同 似乎是 无论如何 回答这个问题 One of the main differences between Groovy and other
  • Ruby 的 OpenSSL::Random 种子是否足够?

    我对 Ruby 知之甚少 所以如果答案很明显 请原谅我 我注意到在http www ruby doc org stdlib 1 9 3 libdoc securerandom rdoc SecureRandom html http www
  • 在 debian Squeeze 上安装 RoR

    有什么方法可以在我的 debian squeeze 上安装 Ruby 1 9 2 或 1 8 7 Rails 3 吗 您可能不想在生产计算机上使用 RVM 它的 PATH 魔力会在不明显的地方 例如 cron 作业 被破坏 然后你就会陷入困
  • 标记(lex?parse?)正则表达式

    使用 Ruby 我想获取一个 Regexp 对象 或表示有效正则表达式的字符串 您的选择 并将其标记化 以便我可以操作某些部分 具体来说 我想采用这样的正则表达式 字符串 regex var w parts foo bar 并创建一个替换字
  • 回形针如何更改基本名称(文件名)?

    我正在尝试更改照片的基本名称 文件名 在我的模型中我有 attr accessor image url basename has attached file image styles gt original gt 300x250 gt pn
  • 如何检查水豚中的复选框?

    我正在使用 Rspec 和水豚 我怎样才能写一个步骤来检查checkbox 我试过了check按价值但它找不到我的checkbox 我不知道该怎么做 因为我实际上有相同的 ID 但值不同 这是代码
  • 将对象数组中的属性映射到另一个数组的更有效的 Ruby 方法?

    我不会在这里重复我的问题 但是有没有更有效的方法来写这个 def recruits names names for r in self referrals do names lt lt r display name end return n
  • 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

    有没有人解决这个问题Ruby 2 7 0 I used rbenv并安装了 Ruby v2 7 0 然后使用创建了一个 Rails 项目Rails v6 0 2 1 目前 通过运行之一 rails s rails s u puma rail
  • 无需别名的 Ruby YAML 编写

    我正在从 ruby 将数据写入 yaml 文件 并且经常在该文件上添加别名 像 id001 somekey somevalue id001 就我而言 我使用 yaml 文件来aid可读性并将名称添加到文件中的值 因为现有数据只是 没有键的分
  • 使用 YAML.load 解析 json 安全吗?

    我使用的是红宝石2 1 0 我有一个 json 文件 例如 测试 json item apple 1 banana 2 使用 YAML load 加载此文件是否安全 YAML load File read test json 我正在尝试加载
  • Ruby mp3 Id3 解析

    目前我正在从事一个音乐项目 处理用户 mp3 上传 问题是我找不到适用于所有文件的 id3 库 我努力了id3 ruby and Mp3Info库 但它们都没有给我一致正确的结果 例如 最常见的问题 错误的流参数 比特率和采样率 有时是持续
  • RSpec 请求规范发布一个空数组

    我目前正在 Rails 中开发 API 端点 如果我需要的数据无效 我想确保端点响应具有正确的错误状态 我需要一个 id 数组 无效值之一是空数组 Valid vendor district ids 2 4 5 6 Invalid vend
  • 有没有可以在 HTML 文档之间进行比较的 ruby​​ gem?

    事实证明 对两个不同的 html 文档进行比较是一个完全不同的问题 而不仅仅是对纯文本进行比较 例如 如果我在以下之间进行简单的 LCS 差异 Google and Google diff 结果不是 but a gt github com
  • 下载所有 gems 依赖项

    我想通过下载任何所需的文件并将它们带到另一台计算机来安装指南针没有互联网连接 我已经下载了指南针的源包 当我在未连接的计算机上运行 gem 时 它抱怨缺少依赖项 有什么解决办法吗 这正是我遇到的问题 经过一段时间的搜索后 我找到了一个可以使

随机推荐

  • 在 javascript 中创建可调整大小/可拖动/旋转视图

    我一直在尝试用 Javascript 创建这样的东西 正如您所看到的 容器可以被拖动 旋转和调整大小 大多数事情都工作正常 但是旋转容器时调整容器大小会产生奇怪的输出 我预计这会发生 相反 我得到这个 这是完整的代码 https jsfid
  • Swift 3 错误:“另请参阅”标注未显示

    我刚刚将我的项目迁移到 Swift 3 发现快速帮助中的 另请参阅 标注没有显示 在 Swift 的早期版本中 一切都运行得很好 下面是我的代码 Adds a See also callout in the Quick Help for a
  • 无表单方法的 POST (PHP)

    有没有什么方法可以使用 POST 方法而不使用表单将内容从一个页面传递到另一个页面 就像在 get 中一样 你可以只附加一个 与您想发送的任何内容一起 你能为帖子做点什么吗 我还阅读了另一篇文章 其中提到要使用会话 但会话会以 cookie
  • UITableView 使用 UIRefreshControl 拖动距离

    我在 UITableView 上实现 UIRefreshControl 时遇到一些麻烦 一切工作正常 除了我必须滚动屏幕的 80 之类的内容才能触发 UIRefreshControl 有时我什至无法触发它 因为屏幕底部有一个选项卡栏 当手指
  • window.location.assign(“链接”),不起作用

    这是 JavaScript 代码
  • 如何使用 htaccess 分割 URL

    例如 google com en game game1 html应该google com index php p1 en p2 game p3 game1 html 我怎样才能分割URL并发送index php 部分 仅当查询参数具有固定长
  • :host-context 在 Lit-Element Web 组件中未按预期工作

    我有两个 Lit element Web 组件 一个是units list 其中包含许多units list item元素 这units list item元素有两种不同的显示模式 紧凑和详细 由于列表元素支持无限滚动 因此可能包含数千个单
  • 如何提取div标签中的强元素

    我是网络抓取新手 我正在使用 Python 来抓取数据 有人可以帮助我如何从以下位置提取数据 div class dept strong LENGTH strong 15 credits div 我的输出应该是 LENGTH 15 cred
  • 添加数据后保存并关闭 Excel 文件吗?

    我正在尝试打开现有的 Excel 2013 文件 添加数据 然后保存它 相同名称 然后关闭它 然后关闭 Excel 该代码将打开文件 选择正确的工作表并写入数据 但是当我尝试保存它时 出现属性错误 我错过了图书馆或其他什么吗 这是代码 im
  • 我们如何在 Perl 中将 UUID 转换为日期

    我对 Perl 语言很陌生 如何转换UUID迄今为止的格式2011 04 22 例如 我有这样的UUID 118ffe80 466b 11e1 b5a5 5732cf729524 如何将其转换为日期格式 该模块UUID 小 https me
  • Angular 7 构建:如何删除输出哈希和默认 ~~ 文件?

    我使用以下方法构建了角度应用程序 ng build prod named chunks output hashing none 它输出module A js module B js正如预期的那样 但有一些文件 例如default
  • 为什么 Tkinter 中的这个形状更新缓慢?

    尝试在 tkinter 中进行简单的移动 import tkinter as tk class GameApp object An object for the game window Attributes master Main wind
  • ModuleNotFoundError:Python 3.6 找不到模块,而 Python 3.5 则找到

    我想将我的 python 版本从 3 5 升级到 3 6 由于我正在使用温Python https sourceforge net projects winpython 我已经下载并安装了最新版本 就像我之前使用 3 5 版本一样 但是 如
  • 更改 matplotlib 动画中的 RGB 颜色

    我似乎无法通过 RGB 定义更改 Matplotlib 散点图的颜色 我错了吗 这是一个代码 已在堆栈溢出中给出 它使用浮点数索引的颜色 import matplotlib pyplot as plt import numpy as np
  • 我们如何在子类中 typedef 或重新定义模板化嵌套类?

    考虑以下 template
  • 如何使用opencv获取位置并绘制矩形?

    我想在图片框中移动并单击鼠标时获得一个位置 我想在单击鼠标的时间和位置在图像窗口中创建矩形 我有一个来自文档的简单代码 include stdafx h include opencv2 highgui highgui hpp include
  • 如何从c目标文件生成可执行文件?

    如何将目标文件制作为可执行文件 您需要链接目标文件 您的命令 gcc c o file cgi file c 将 file c 编译为目标文件 通常称为file o 如果你摆脱了 c 它将直接生成可执行文件 gcc o file cgi f
  • x 轴转换为浮点数

    我正在尝试绘制按年份分组的数据 并且对于每年 我想计算用户数量 下面 我刚刚将日期列从浮点转换为整数 This is my plot 如果您看到 x 轴 我的年份代码似乎已变成浮点数 并且每个代码相距 0 5 个刻度 我如何使其成为纯整数
  • 在Linux上编译VLC:错误找不到Lua

    我正在尝试为 Linux 编译 VLC 当我运行配置脚本时 我收到错误消息 配置 错误 找不到 lua 有些人需要Lua 接口 rc telnet http 以及许多其他自定义脚本 使用 disable lua 忽略此错误 我的系统上有lu
  • Ruby,没有将 Symbol 隐式转换为 Integer

    昨天我已经在 没有将 Symbol 隐式转换为 Integer Ruby https stackoverflow com questions 38482973 no implicit conversion of symbol into in