Ruby on Railsを使用した複数のアプリケーション

ruby-on-rails
Ruby on Railsを使用した複数のアプリケーション

単一のRuby on Railsインストールに、共通のモデルを共有する複数のアプリケーションを含めることは可能ですか?

たとえば、フロントエンドアプリケーションとバックエンド管理コンソールが必要ですが、どちらも同じモデルを共有しています。

これは、SymfonyがPHPで動作する方法に似ています。

前もって感謝します!

  4  2


ベストアンサー

管理パネルを作成する最も簡単な方法は、名前空間を使用することです。 すべての管理機能をadmin名前空間に配置するだけです。 これは非常に一般的な方法です。

一方、同じデータベースとモデルを共有する2つ(またはそれ以上)のアプリケーションが必要な場合は、非常に簡単です。 同じデータベースを共有する2つのRoRアプリケーションを持つプロジェクトが1つあります。 だからここにそれについて私の考えです:

  1. すべての移行を最初のプロジェクトに入れました。 置くと面倒になります
    両方のアプリケーションでそれらすべて(または、ここでは少数)があります。 次に、移行後、schema.dbを2番目のプロジェクトにコピーするか、シンボリックリンク(Unixのようなシステムの場合)をコピーして、それ以上は気にしません。

  2. 両方のアプリケーションでモデルを共有したい場合は、コピーできます
    モデルファイルまたはシンボリックリンクを使用します。 2番目のアプリケーションでは使用しない関連モデルをすべてコピーしたくないため、最初の方法を使用しました。

  3. それは素晴らしい仕事です。 ただし、この場合は、2つのサーバーをセットアップする必要もあります
    アプリケーション 両方のアプリケーションに異なるサブドメインを使用しました。

それが役に立てば幸い!

11


クリューの提案は私のために働いた。 フル機能の管理バックエンドがあり、無駄のないフォーカスAPIアプリが必要でした。

最終的に2つ目のアプリにrails_api gemを使用し、別のユーザーアカウントで作成しました。

データベースとしてpostgresを使用しています。

次に、以下を実行する必要がありました:使用したファイルをコピーするのではなく、他のアプリと同じデータベース、ユーザー名、パスワードを使用するようにdatabase.ymlを編集しましたAPIで。 この時点で、APIアプリでRailsコンソールを使用することができました。

rails_api gemを使用しているため、明らかにルートがありませんでした。 これはおそらく、必要に応じて特定のルートを手動で作成でき、他に何もWebに公開しないため、良いことです。

APIアプリでは移行を行いません。model.rbファイルの奇妙なリンクを除くすべてが元のアプリで行われます。

うまく機能しているようだ、Klewに感謝!

2


RoRで複数のアプリケーションを実行する最も一般的な方法は、エンジンアーキテクチャを使用することです。 かなりの数の本番アプリケーションで使用されています。

RoRのドキュメントhttp://guides.rubyonrails.org/engines.htmlに詳細があります

https://github.com/taskrabbit/rails_engines_example [さまざまなアプローチについて非常に詳細な説明があるTaskRabbitのサンプルコードベース]

_
私がグーグルで検索した最初の結果でこのスレッドを見つけたときにこの古い質問を追加します。 また、2つの完全に分離されたアプリケーションを同じRoRフレームワークから実行したい場合があるため、この質問は非常に曖昧です。 知らない…​)
_

0


タイトルとURLをコピーしました