Ruby on rails 如何将Net::SSH放入模型方法中?
我有一个rails模型Ruby on rails 如何将Net::SSH放入模型方法中?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个rails模型实例,它代表一个EC2实例 目前,每次我有一个必须对其进行SSH的方法时,我都必须在我想做的任何地方设置Net::SSH,这是非常多的 例如: Net::SSH.start(ip, 'ubuntu', keys: "mykey.pem" ) do |ssh| ssh.exec "sudo chmod +x /tmp/provision.sh" end 有没有一种方法可以将“ssh”设置位考虑到实例模型中?如何将其封装到私有方法中,并产生到调用位置的连接 class I
实例
,它代表一个EC2实例
目前,每次我有一个必须对其进行SSH的方法时,我都必须在我想做的任何地方设置Net::SSH,这是非常多的
例如:
Net::SSH.start(ip, 'ubuntu', keys: "mykey.pem" ) do |ssh|
ssh.exec "sudo chmod +x /tmp/provision.sh"
end
有没有一种方法可以将“ssh”设置位考虑到实例模型中?如何将其封装到私有方法中,并产生到调用位置的连接
class Instance
def chmod
start do |ssh|
ssh.exec "sudo chmod +x /tmp/provision.sh"
# other operations on ssh
end
end
private
def start
Net::SSH.start(ip, 'ubuntu', keys: "mykey.pem" ) do |ssh|
yield ssh
end
end
end
这看起来很酷,实际上,我可以在传递的块中放入多行代码(即多个ssh.exec命令)吗?非常感谢,这太棒了!一个问题。“开始”代表什么?为什么有必要/重要?