Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在ruby中编辑远程文本文件_Ruby On Rails_Ruby_File Io - Fatal编程技术网

Ruby on rails 如何在ruby中编辑远程文本文件

Ruby on rails 如何在ruby中编辑远程文本文件,ruby-on-rails,ruby,file-io,Ruby On Rails,Ruby,File Io,我在一台服务器(ubuntu)中有一个文本文件,如何在ror应用程序中远程编辑它 我认为应该通过以下方式完成: 将远程文件下载到本地tmp文件夹 使用以下命令编辑文件: File.open(params[:File_path],'a'){f|f.write(“{params[:token]}\n”)} 然后将其上载到远程服务器 Net::SSH.start(remote_server_ip, "root", {:password => "secret"}) do |ssh| ssh.s

我在一台服务器(ubuntu)中有一个文本文件,如何在ror应用程序中远程编辑它

我认为应该通过以下方式完成:

将远程文件下载到本地tmp文件夹

使用以下命令编辑文件:

File.open(params[:File_path],'a'){f|f.write(“{params[:token]}\n”)}

然后将其上载到远程服务器

Net::SSH.start(remote_server_ip, "root", {:password => "secret"}) do |ssh|
  ssh.scp.upload! localfile_path, remote_file_path
end
我想知道这是最好的方法,还是有其他方法或任何红宝石

我已经构建了在本地机器中添加/删除行的逻辑

我希望这对远程文件有效


我怎样才能做到这一点

我觉得你的方法不错。net/scp gem使您可以轻松地重用现有ssh连接进行下载上载,如下所示:

require 'net-ssh'
require 'net-scp'
ssh = Net::SSH.start('my-server', 'my-user')
ssh.scp.download!('/remote/path/to/file', '/local/destination/folder')
(do stuff with file)
ssh.scp.upload!('/local/modified/file', '/remote/path/to/file')

请注意,您需要同时安装
net/ssh
net/scp
gems。

为什么不在ssh会话本身中执行写文件操作?我可以在web中维护ssh会话吗?实际上,我将下载该文件并在视图中显示,然后用户可以编辑其内容,当他单击“保存”时,我将其保存在本地,然后将该文件上载到远程服务器。在这种情况下是否可以维护ssh会话??我这么问是因为我不知道。你说的“网络”是什么意思?它应该在控制器/模型中,对吗?是的。它在控制器中。我以为您指的是ruby脚本文件。为了显示和编辑,您必须创建单独的ssh连接。