2

ネットワーク上に多数のディレクトリを含む samba サーバーがあり、ディレクトリの 1 つは .xls Microsoft Excel ドキュメントでいっぱいです。

私が達成しようとしているのは、基本的に、リモート IP を含むリンクにマッシュアップできるリモート ディレクトリ内のファイルのリストです。最終結果は、基本的に、ユーザーがクリックして必要なファイルを開くことができるディレクトリ内のファイルのライブテーブルです。

同様のことを行う次の方法について読んだことがあります。

basedir = '.'
files = Dir.glob("*.xls")

私が解決しようとしているのは、basedir をリモート 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。実際のファイル名を出力する方法はありますか?

4

2 に答える 2

2

これをやりたい人のために、私がそれを機能させるために取った手順は次のとおりです。

  1. リモート フォルダをローカルにマウントします。

    fusermount -u ~/yourmountdirectory

  2. ローカル (リモート) ディレクトリの内容を一覧表示する

    @xls_files = Dir.glob("/home/danny/nurserotas/*")

3.ファイルビューでリストを出力

<ul>
<% @xls_files.each do |xls| %>
<li><%= xls %></li>
<% end %>
</ul>
于 2012-08-10T11:10:52.553 に答える
0

次のようなコマンドラインを使用しようとしましたか:

@xls_files = `ssh 192.168.1.1 'ls /path/to/dir *.xls'`
@xls_files = @xls_files.split('\n')
于 2012-08-09T16:45:53.297 に答える