我正在执行一些基于用户操作的系统命令,例如mkdir
、cd
、cp -r skel/ dest/
和创建 apache vhost 等。
这段代码最好的地方在哪里?我的直觉是将它们作为私有方法放入模型中,这是正确的吗?
谢谢
杰夫
我正在执行一些基于用户操作的系统命令,例如mkdir
、cd
、cp -r skel/ dest/
和创建 apache vhost 等。
这段代码最好的地方在哪里?我的直觉是将它们作为私有方法放入模型中,这是正确的吗?
谢谢
杰夫
Rails 建议使用瘦控制器和胖模型,但我认为执行系统命令与模型无关。
由于它们取决于用户的操作,我建议将它们放入库(/lib)并从控制器调用该库。
另外,请记住FileUtil可能已经完成了您正在寻找的工作。
我建议不要直接使用 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'
我还将它们作为私有方法放入模型中。