0

我正在使用这个文件上传示例来上传数据库中的一些文件。我有一个带有 r-script 的 rruby.rb,它对文件(命名为 A)进行统计分析,因此它在文件 A 所在的目录中保存了一个绘图。我需要的是从数据库中提取文件,进行分析并将绘图保存回数据库。我应该将 rruby.rb 的代码放在哪里?在uploads_controllerupload.rb

4

1 回答 1

0

我会将rruby.rb文件分开并按原样使用。但是该文件放在哪里呢?

有两个同样有效的选项。要么放在lib文件夹里,要么放在models文件夹里。

lib如果我考虑到更通用的代码和我碰巧需要的代码,我会将它放在文件夹中。代码输入lib是最终可以变成宝石的代码。这是我认为与任何业务代码或模型完全无关的代码。

如果代码与我的业务领域和其他模型密切相关。

因此,在您的情况下,我会将rruby文件放在lib文件夹中,因为(如果我理解正确的话)它包含一个非常独立的过程,不依赖于其余代码,只需要一个文件作为输入,并将生成一个文件作为输出。

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

然后在您的上传控制器或上传模型中,您执行类似的操作

result_file = Statistical.do_analysis(uploaded_file)

通常,其中的所有文件都会lib自动添加到 rails load-path,所以这就是你需要做的。

于 2012-11-16T19:22:00.480 回答