问题标签 [ruby-block]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
642 浏览

ruby - 在厨师客户端的第二次运行中,“链接”上 docker_container 的惰性属性未得到解析并传递了不可读的值

我第一次在 stack-overflow 上问问题,在中国,我很少能见到任何厨师开发人员来谈论我的问题,所以我把它贴在这里寻求帮助。这个问题困扰了我好几个星期,我仍在努力解决它。

这是我的错误信息:

* 模板[/root/tools/projectname/../bootproxy/oc.proxy.conf] 动作创建(最新) * 目录[/root/tools/projectname/../bootproxy] 动作创建(最新) * 文件[/tmp/dockerinfo.txt] 操作删除 - 删除文件 /tmp/dockerinfo.txt * bash[docker ps -a|grep -v CONTAINER|grep -v monitor|awk '{print $1, $NF}']动作运行 - 执行“bash” “/tmp/chef-script20170319-2107-fx41as” * ruby​​_block[result] 动作运行 - 执行 ruby​​ 块结果 * docker_container[bootproxy] 动作重新部署 - 停止 bootproxy(将在 30 秒后终止) - 删除bootproxy =================================================== ================================redeploy对资源 'docker_container[bootproxy]'执行操作时出错==================================================== ===============================

运行处理程序:[2017-03-19T21:20:15+08:00] 错误:运行异常处理程序 运行处理程序完成 [2017-03-19T21:20:15+08:00] 错误:异常处理程序完成 Chef Client 失败。20 个资源在 34 秒内更新 [2017-03-19T21:20:15+08:00] 致命:堆栈跟踪转储到 /var/chef/cache/chef-stacktrace.out [2017-03-19T21:20:15+08 :00] 错误:docker_container[bootproxy](webserver::default line 218)有一个错误:Docker::Error::ServerError: could not get container for bootproxy

[2017-03-19T21:20:15+08:00] 致命:Chef::Exceptions::ChildConvergeError:Chef 运行进程未成功退出(退出代码 1)

这是我的代码:

我在这里尝试做的是由厨师 docker cookbook 版本 2.14.3 运行一组 docker,名称循环到“localfolder”,当 localfolder =“bootproxy”时,执行 bash 命令以检查 docker 当前正在运行并通过名为“bootproxy”的 nginx docker 链接它们。

我的问题是,每当我清除所有缓存或重新上传所有食谱“网络服务器”后,厨师客户端运行良好而没有错误。但是当我重新运行厨师客户时,我得到了

由于“docker_container”资源中“links”的值变成了“#”,而不是包含当前运行的 docker 名称的数组,例如 [“container1:container1”、“container2:container2”、“container3:container3”]。所以我怀疑尝试从主机获取值的 ruby​​_block 正在被缓存并且在第一次连续执行后没有运行。我的缓存删除(rm -rf /var/chef/cache)证明了这一点,但我无法定义食谱中缓存的删除(也不是解决它的好方法)。我需要让主厨客户端能够重新运行,因为我正在使用它在整个环境中部署我的代码集。请给我任何建议。

谢谢!

0 投票
3 回答
721 浏览

ruby - Ruby方法调用使用圆括号抛出语法错误

我在理解为什么不能用圆括号调用 select 时遇到了一些麻烦。

据我所知, select 是一种常规方法。

我虽然圆括号对于 ruby​​ 中的方法是可选的。
在下面的情况下,圆括号没有区别。

我正在使用红宝石 2.2.1。
有任何想法吗?

0 投票
1 回答
3450 浏览

ruby - 如何将方法调用链接到 Ruby 中的“do ... end”块?

我正在执行以下操作:

我可以以某种方式在一个语句中调用mapand ,以便立即返回结果吗?compact

我正在考虑这样的事情(但是它可能是无效的):

0 投票
1 回答
292 浏览

ruby - 使用 rspec 传递一个 ruby​​ &block

我想使用接收匿名块且不引发错误的 rspec 来测试该方法的功能。下面是我的代码:

它低于抛出错误

花了很多时间浏览 ruby​​ 块和 ruby​​ 文档的文章,但无法弄清楚。

0 投票
2 回答
2861 浏览

ruby - 如何使用 rspec 调用检查块

我想检查是否使用 rspec 在我的函数中调用了该块。下面是我的代码:

以下是我的错误:

能否请你帮忙。我在那花了很多时间。

0 投票
2 回答
52 浏览

ruby - Ruby:将块作为参数从 oustide 类传递

执行代码时出现以下错误:

第 9 行是我的代码中的倒数第二行。

我的代码:

我的动机是用目标参数调用块。

我怎样才能在课外传递一个块。请提供任何帮助。

0 投票
1 回答
542 浏览

ruby - Ruby 块 - 在 yield 之后返回 yield 运行代码

我想返回的输出yield但也执行之后的代码yield,有没有更“正确”的方式?:

0 投票
1 回答
159 浏览

ruby-on-rails - Ruby - 对所有块变量应用方法

例如 sum = 0

现在总和我想添加一个属性的值,即块中的每个对象都有它,例如

有没有办法一次做到这一点(对块的所有参数应用方法)?

0 投票
1 回答
250 浏览

ruby - Ruby faraday openweathermap api 配置块然后 conn.get 块

以上是我一直在使用的当前配置块和请求块,不幸的是它没有产生我想要的结果。

我收到:

我首先看到一个 404 响应,因此很明显 get 请求无法正常工作。经过检查,我发现最终的 url 没有正确编码参数。截至目前的网址是: #<URI::HTTP http://api.openweathermap.org/weather?APPID=95cade087f6f767d179feaa301816de4&q=oskaloosa&units=metric>

实际上,我要构建的正确网址是: #<URI::HTTP http://api.openweathermap.org/weather?q=oskaloosa&APPID=95cade087f6f767d179feaa301816de4&units=metric>.

现在我知道我可以使用#{param['key'])或 #{@key}` 进行字符串插值,但我试图仅对这个 conn 和请求/响应周期使用块构造。

谁能给我一些建议或阐明这个话题?

0 投票
1 回答
25364 浏览

ruby - Ruby:使用条件的返回进行变量赋值和比较

我有一个方法,为了检查它是否被传递了一个块,我执行以下操作:

然而,RuboCop 给了我一个警告,我并不真正理解这一if block_given?行:

使用条件的返回进行变量赋值和比较

还有其他更红宝石的方法吗?

谢谢