4

この概念に関するさまざまな検索から、有用な結果を得るのに苦労しています。間違っている、および/または b. あいまい。ただし、基本的には、通常の Web アプリとして、またはコマンドライン インターフェイスで動作するアプリケーションを作成したいと考えています。私は昔、Perl を使用して sysadmin-y 用にこれを行ったことがありますが、Ruby/Rails を使用することによる喜びはまったくありませんでした。

私は Rails 自体に十分慣れており、あらゆる種類の CLI にスタンドアロンの Ruby も使用しています。私が探しているのは、Rails アプリケーションを CLI 機能を持つように拡張するためのベスト プラクティスです (存在する場合)。

おそらく答えは、スクリプト/ランナーを使用し、Rails モデルを使用しながら独自の「VC」を実行するのと同じくらい簡単です...これは私がやろうとしていたことですが、最初に一歩下がってそのアプローチの健全性を確認しようと思いました. RailsコントローラーはHTTPリクエストと密接に結びついているため、どのようにRailsコントローラーを利用するか想像するのに苦労していますが、賢い(より)人々が思いついたものに驚かされることがよくあります。

有益な回答をありがとう。

4

2 に答える 2

1

すべては、コントローラー ロジックを再利用するかどうかにかかっていると思います。そうすれば、gem/Rake タスク/スタンドアロンの Ruby スクリプトを作成して、アプリケーションに HTTP リクエストを送信し、JSON/XML/プレーン テキストなどとして応答を受け取ることができます。これには、 HTTPartyのようなものが理想的です。

2番目の選択肢は、あなたが説明したとおりです.Railsモデルを独自のスクリプトから直接駆動し、結果を提示します.

于 2010-02-24T14:02:42.733 に答える
0

もう 1 つのアプローチは、Web インターフェイスが CLI に対してシェルを実行して何かを実行することです。やるべきことはすべて CLI にあり、Web はすべてのニーズに対して CLI を呼び出すだけです。

砲撃は少し高価です。パフォーマンスが低下することが判明した場合は、popen を使用して、Web セッションごとに 1 回だけ CLI をロードしてください。次に、コマンドをフィードし (popen パイプを介して stdin に書き込み)、コマンドごとに CLI をロードすることなく、結果を取得します (popen パイプを介して stdout から読み取ります)。CLI が「いくつかの引数を取り、何かを実行して終了する」タイプの場合は、「--stay-resident」などの新しいモードを追加して、Web インターフェイスが必要とする動作に切り替えます。 .

于 2010-02-24T14:37:33.150 に答える