簡體   English   中英

Ruby on Rails的多個應用程序

[英]Multiple applications with Ruby on Rails

是否有可能讓一個Ruby on Rails安裝有多個應用程序,它們共享一個共同的模型?

例如,我想要一個前端應用程序,以及后端管理控制台,但兩者共享相同的模型。

這類似於Symfony在PHP中的工作方式。

提前致謝!

擁有管理面板的最簡單方法是使用命名空間。 您只需將所有管理員資料放入管理員命名空間 這是很常見的做法。

另一方面,如果您希望有兩個(或更多)應用程序共享相同的數據庫和模型,那么這很容易。 我有一個項目有兩個共享相同數據庫的RoR應用程序。 所以這是我對它的看法:

  1. 我把所有遷移都放在了我的第一個項目中。 如果你在兩個應用程序中都放置了所有這些(或少數幾個),那就太麻煩了。 然后,在遷移之后,您可以將schema.db復制到第二個項目,或者只是我們一個符號鏈接(在類Unix系統中)並且不再關心它。
  2. 如果要在兩個應用程序中共享某些模型,則可以復制模型文件或使用符號鏈接。 我使用了第一種方法,因為我不想復制我在第二次應用中不使用的所有相關模型。
  3. 它很棒。 但在這種情況下,您還必須為兩個應用程序設置服務器。 我為這兩個應用程序使用了不同的子域。

希望能幫助到你!

klew的建議對我有用。 我有一個功能齊全的管理員后端,需要精簡和專注的API應用程序。

我最終使用rails_api gem作為第二個應用程序並在單獨的用戶帳戶下創建它。

我使用postgres作為我的數據庫。

然后我必須執行以下操作:編輯database.yml以使用與其他應用程序相同的數據庫,用戶名和密碼,而不是復制我使用的文件ln -s我鏈接了schema.rb和我想要使用的任何model.rb文件在API中。 此時我可以在API應用程序中使用rails控制台。

當我使用rails_api gem時,我顯然錯過了路線。 這可能是一件好事,因為我能夠根據需要手動創建特定路線,而不會向網絡公開任何其他內容。

我沒有在API應用程序中進行任何遷移,除了model.rb文件的奇怪鏈接之外的所有內容都在我的原始應用程序中完成。

似乎工作得很好,謝謝Klew!

在RoR中運行多個應用程序的最常用方法是使用引擎架構。 它已被用於相當多的生產應用中。

以下是RoR文檔http://guides.rubyonrails.org/engines.html中的詳細信息

TaskRabbit的示例代碼庫,其中包含有關不同方法的非常詳細的說明

添加這個老問題,因為我發現這個線程的第一個結果,因為我搜索谷歌。 此問題也很模糊,因為人們實際上可能希望從同一個RoR框架運行兩個完全分離的應用程序。(為什么?不知道......)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM