我的网络上有一个samba服务器,其中包含许多目录,其中一个目录中包含.xls Microsoft Excel文档。
我想要实现的基本上是远程目录中的文件列表,然后我可以将其混合到包含远程IP的链接中。最终结果基本上是目录中文件的实时表,用户可以单击该表来打开他们需要的文件。
我已经阅读了以下类似的方法:
basedir = '.'
files = Dir.glob("*.xls")
我想要解决的问题是,如何使基础知识成为远程IP,以及如何将其构建到我的模型/控制器中。
理想情况下,我想做这样的事情:
file_controller.rb
class FilesController < ApplicationController
basedir = '192.168.1.1/files/path/to/xlsdocuments/'
def index
@xls_files = Dir.glob("*.xls")
respond_to do |format|
format.html # index.html.erb
format.json { render json: @articles }
end
end
这将允许我在我的视图中循环遍历@xls_files。
这甚至是远程可能吗?
更新
在我的控制器中使用上面的代码如下,我没有得到任何错误,但我无法弄清楚如何显示文件名:
class DocumentsController < ApplicationController
before_filter :authorize, only: [:new, :edit, :update]
basedir = '192.168.1.1/common/'
# GET /documents
# GET /documents.json
def index
@documents = Document.all
@xls_files = Dir.glob("*.xls")
@xls_files = @xls_files.split('\n')
respond_to do |format|
format.html # index.html.erb
format.json { render json: @documents }
end
end
我在视图中使用以下内容循环遍历文件名:
<% @xls_files.each do |xls| %>
file name
<% end %>
这会输出file name
。知道如何输出实际文件名吗?
答案 0 :(得分:2)
对于其他可能想要这样做的人来说,这些是我为使其发挥作用而采取的步骤:
在本地安装远程文件夹。
fusermount -u ~/yourmountdirectory
列出本地(远程)目录的内容
@xls_files = Dir.glob("/home/danny/nurserotas/*")
3.视图中的输出列表
<ul>
<% @xls_files.each do |xls| %>
<li><%= xls %></li>
<% end %>
</ul>
答案 1 :(得分:0)
您是否尝试使用如下命令行:
@xls_files = `ssh 192.168.1.1 'ls /path/to/dir *.xls'`
@xls_files = @xls_files.split('\n')