使用Rails执行系统命令

时间:2012-06-05 23:52:12

标签: ruby-on-rails ruby-on-rails-3

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

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

THX

杰夫

2 个答案:

答案 0 :(得分:2)

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

由于它们依赖于用户操作,我建议将它们放在库中( / lib )并从控制器调用该lib。

另外,请注意FileUtil可能已经完成了您正在寻找的内容。

答案 1 :(得分: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'

我也会将它们作为私有方法放在模型中。