1

、、、などのユーザーアクションに基づいていくつかのシステムコマンドを実行しmkdir、Apache仮想ホストなどを作成しています。cdcp -r skel/ dest/

このコードが存在するのに最適な場所はどこですか?私の本能は、それらをプライベートメソッドとしてモデルに入れることですが、これは正しいですか?

どうも

ジェフ

4

2 に答える 2

2

Railsは、スキニーコントローラーとファットモデルを使用することを推奨していますが、システムコマンドの実行はモデルとは無関係であると思います。

それらはユーザーのアクションに依存するため、ライブラリ( / lib)に配置し、コントローラーからその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 に答える