2011-08-16 4 views
2

仮説的質問(現時点では)非HTTPアクセスのRailsアプリ

私はアプリケーションのための素晴らしいアイデアがあるとします。リレーショナルデータベース内のテーブルによってよく表現されるデータに作用し、それらのテーブルを表す相互リンクされたオブジェクトを使用します。それらのオブジェクトとの相互作用(作成、読み取り、更新、削除)、およびそれらに関する情報の表示用に明確に定義されたAPIをサポートしています。

要するに、Railsにはうってつけです...ウェブアプリになりたくないという点を除いて。コマンドラインインターフェイスが必要なのかもしれません。またはOS固有のダイアログベースのインターフェース。他のアプリにリソースとして自分自身を提示したいと思うかもしれません。どんなものであれ、HTTP経由でそれ自体を提示するようには設計されていません。

Thesequestionsこれは確かに可能ですが、両方とも既存のWebアプリケーションにWeb以外の追加のインターフェイスを適用するという観点から問題に近づいています。

への最善の方法を知りたいと思っています。そのようなアプリになります。あなたはrails new non_web_appに最善を尽くしますか?スケルトンを "無料"のために構築するには、require s config/environmentの "通常の" Rubyコードを書いてください。しかし、あなたは必要のないウェブ中心の塊をたくさん持っていますか?または、必要な図書館だけで必要な構成を手作業で書いて、袖を巻き上げて布全体から構築する方がよいでしょうか?

後者の場合、正確にで、Railsアプリを作るのに必要ですが、ウェブビットはありません。

答えて

4

CRM非Webアプリケーションを開発するためにRails ORMにアクセスするには、ActiveRecordを独自のRubyスクリプトに含めます。おそらく必要のないRailsモジュール(ルーティング、テンプレートジェネレータなど)をたくさん使用することは避けます。Here is an example of how to do it

完全なRailsスタックを使用する場合は、アプリケーションサーバー(WEBrick、Passenger、雑種など)でRails Webアプリケーションを実行しないでください.HTTPエクスポージャーを避け、タスクまたはレールコンソール。

+0

「ActiveRecordをちょうど含む」 - 十分に公正ですが、少なくともデータベースの詳細を設定する必要もあります。基本的には、「Railsで始まりビットを取り除く」ルートを下っていない場合、ARベースのCRUDアプリをブートストラップするために必要なことは? – Chowlett

+0

答えに含まれているリンクを確認してください。 – lbz

+0

ああ、ありがとう、それはそれを説明しています。かなり簡単。 – Chowlett

0

レールをレールから離れすぎないようにします。私はこれをやっていたならば、私は次の操作を行いたいレールの利益は、W/Oウェブのものと感じていた:

rails new non_web_app 

をしてモデルを生成するためにwebbish嫌なものや使用レールを無視します。このようにして、あなたはきつくて快適なデータベースの振る舞いを手に入れ、それらのモデルを増強したいときにさまざまな宝石を結びつけることができます。もちろん、ビューの実装は気にせず、さまざまなレンダービットが削除されたコントローラを実装し、コントローラのインスタンスをインスタンス化してアクションを直接呼び出すことも考えています。これは、コントローラがあなたのビジネスロジックにあなたのAPIを依然として表していることを意味しますが、現在は "レンダリング"されている "ビュー"は単にデータ出力を返すだけです。

次に、パブリックディレクトリ、アプリケーションの下のビュー構造、config/routes.rbなど、不要なビットを削除するだけです。これらの変更を段階的にテストし、今では無関係なビットを削除しても、Railsの世界は混乱することはありません。

0

RailsはWebアプリケーション向けです。それはHTTPを意味します。今では、代わりにデスクトップ上で実行するようにWebアプリケーションをパッケージ化するか、MonkeybarsのようなデスクトップアプリケーションフレームワークでActiveRecordを使用することができます。

関連する問題