2016-10-27 17 views
1

弊社のプロジェクトでは、2つのRailsプロジェクトがあります。AとBは同じデータベースを使用していますが、異なるモデルを共有しています。私の上司は、私が新しいメンバーであり、私たちの生産に多くのリスクをかけるので、両方のプロジェクトのために宝石/レールエンジンにモデルを抽出することを許可しません。だから私は現在それを保つ必要があります。私は多くのことを研究しましたが、今のところ解決策はありません。2レールアプリケーション間でデータを共有

プロジェクト通常、Aのモデルが常に最新の状態になるように、データを作成してデータベースに保存するために使用されます。プロジェクトBは、プロジェクトBがすべてのモデルをAとして持たず、Bの一部のモデルが関連性がないようにデータをロードするために使用されます。私の使命は、プロジェクトBのテストを追加することです。これは私の解決策です。

まず、両方のプロジェクトに対して1つのデータベーステストを共有します。

第2に、プロジェクトAでは、テストデータを作成するために工場ガールを設定しました。

プロジェクトBから、プロジェクトBがそのデータをロードして検証できるようにテストデータを作成するために、Aプロジェクトガールを呼び出すにはどうすればよいですか?

答えて

0

あなたは、基本的にアプリケーションで一回限りのスクリプトを実行するレーキタスクを書くことができ、コマンドラインから起動できます。

rails g task my_task_name 

これで、ファイルlib/tasks/my_task_name.rakeが作成されます。すくいタスクを書くことは非常に単純です:

namespace :my_namespace do 
    task :my_app => :environment do 
    # create some db records here 
    end 
end 

名前空間はオプションですが、=> :environment部分が重要である使用

rake my_namespace:my_appようにあなたが呼びたいた - それは、あなたのRailsアプリケーションからコードをロードするものです。あなたが実行すると

rakeタスクは、あなたがしているものは何でもレポのlib/tasksフォルダになりますです。

+0

私はあなたの提案は、テストデータベースにデータを取り込むためのプロジェクトAにrakeタスクを作成していることを前提としています。しかし、AのレーキタスクをB側からどのように呼び出すことができますか? –

+0

えええええええええええええええええええええええええええええ、 –

+0

BプロジェクトからAのレーキを呼び出す例を挙げることができますか?私はまだこの場合の例を見つけることはできません。ありがとう –

関連する問題