有问题的代码
Net::SSH.start('server name', 'user')
Run Code Online (Sandbox Code Playgroud)
这返回"非绝对的家"."用户"实际上确实有一个主目录.一种建议的方法是使用IdentityFile的完整路径修改〜/ .ssh/config.这并没有解决问题.
这个疯狂的部分是,如果通过irb或控制台调用代码可以正常工作.我们尝试从类方法(使用相同的代码)调用它时,它返回"非绝对主页"错误.
'user'也可以通过命令行ssh进入服务器而不会出现问题.服务器正在运行Ubuntu.
UPDATE
感谢@Phrogz - 解决这个问题的方法是将ENV ['HOME']设置为'/ home/deploy'.但是,我还没弄清楚为什么$ HOME被设置为"." 在服务器上.所以,在我或其他人明白这一点之前,我会在没有"答案"的情况下提出这个问题.必须手动设置HOME感觉更像是一个"黑客"而不是一个合适的解决方案,但它确实有效.
我需要查看特定XML文档中是否存在节点.如果该节点不存在,那么我想使用另一个值.使用XPath 1.0,这涉及疯狂使用concat.使用XPath 2.0,我可以使用它:
if (boolean(path-to-preferred-node)) then path-to-preferred-node else default-to-other-node
Run Code Online (Sandbox Code Playgroud)
我们需要使用XPath 2.0来排除Nokogiri.
任何帮助将不胜感激.