0

このファイル アップロードの例を使用して、データベースにいくつかのファイルをアップロードしています。ファイルの統計分析を行う r-script を含む rruby.rb があり (name it A) 、その結果、ファイル A があるディレクトリにプロットを保存します。必要なのは、データベースからファイルを抽出し、分析を行い、プロットをデータベースに保存することです。rruby.rb のコードはどこに配置すればよいですか? uploads_controllerupload.rbの中で?

4

1 に答える 1

0

ファイルをrruby.rb分けてそのまま使います。しかし、そのファイルをどこに置くのでしょうか?

2 つの同等に有効なオプションがあります。libフォルダに配置するか、フォルダに配置しmodelsます。

libたまたま必要な一般的なコードを検討する場合は、フォルダーに配置します。Code inlibは、最終的に gem に変換できるコードです。これは、ビジネス コードやモデルとはまったく無関係であると私が考えるコードです。

コードが自分のビジネス ドメインや他のモデルと強く関連している場合。

したがって、あなたの場合、(私が正しく理解していれば)かなり分離された手順が含まれており、残りのコードに依存せず、入力としてファイルが必要であり、出力としてファイルを生成するため、ファイルをフォルダーにrruby配置します。lib

コードを分離しておくことのもう 1 つの利点は、rrubyコードを分離してテストできることです。

お役に立てれば。

[編集: 実装例を追加]

あなたrrubyは単純なスクリプトだと思うので、それをモジュールにラップします。統計分析を実行するので、私はそれを と呼んでStatisticalいますが、より適切な名前を付ける必要があります

だから書面lib/statistical.rb

module Statistical

  def self.do_analysis(file_to_analyse)
    # .. do a lot of stuff and return a result-file
  end
end

次に、uploadscontroller または uploads モデルで、次のようなことを行います

result_file = Statistical.do_analysis(uploaded_file)

通常、 内のすべてのファイルlibは rails load-path に自動的に追加されるため、これだけで十分です。

于 2012-11-16T19:22:00.480 に答える