我正在执行一些基于用户操作的系统命令,例如mkdir
,cd
,cp -r skel/ dest/
,并创建一个apache vhost等。
此代码的最佳居住地点在哪里?我的直觉是将它们作为私有方法放入模型中,这是正确的吗?
THX
杰夫
答案 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'
我也会将它们作为私有方法放在模型中。