1

我正在执行一些基于用户操作的系统命令,例如mkdircdcp -r skel/ dest/和创建 apache vhost 等。

这段代码最好的地方在哪里?我的直觉是将它们作为私有方法放入模型中,这是正确的吗?

谢谢

杰夫

4

2 回答 2

2

Rails 建议使用瘦控制器和胖模型,但我认为执行系统命令与模型无关。

由于它们取决于用户的操作,我建议将它们放入库(/lib)并从控制器调用该库。

另外,请记住FileUtil可能已经完成了您正在寻找的工作。

于 2012-06-06T00:09:57.533 回答
1

我建议不要直接使用 Ruby 自带的 FileUtils 模块。

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html

require 'fileutils'
FileUtils.mkdir 'test'
FileUtils.cd 'test'
FileUtils.cp_r 'skel', 'dest'

我还将它们作为私有方法放入模型中。

于 2012-06-06T00:09:05.077 回答