0

Rails :: Engineにストライプを設定する際に問題があります.2番目の問題は、envsの読み込みに関連する2倍の問題です。それに行くでしょう。.envを使用してRailsエンジンのCongifure Stripe

ここでの目標は、大きなRailsアプリケーションからサブスクリプションプロセスを打ち破ることです。

更新 私はこれをすべて入力していたので、実際に動作させました。下記の答えを投稿してください。コメントをお寄せいただき、より良い方法を提供してください。

第一の質問STRIPE CONFIG

レールエンジンにストライプをセットアップする方法を質問。親エンジンまたはRailsアプリとは別に私はいくつかのことを試しました。

第二の質問負荷はまだスペックにロードされているダミーのアプリケーションのためのローカルサーバを実行しているとき

.envsがロードされていないENVS。

+0

あなたは投票を説明できますか? – ChrisCPO

答えて

1

ストライプコンフィグ

#/:engine_name/engine.rb 
require "dotenv-rails" 

module :engine_name 
    class Engine < ::Rails::Engine 
    isolate_namespace :engine_name 

    config.generators do |g| 
     g.test_framework :rspec, fixture: false 
     g.fixture_replacement :factory_girl, dir: 'spec/factories' 
    end 

    #load envs 
    Dotenv::Railtie.load 

    initializer "config.stripe" do |app| 
     config.stripe = { 
     :publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'], 
     :secret_key  => ENV['STRIPE_SECRET_KEY'] 
     } 

     Stripe.api_key = ENV['STRIPE_SECRET_KEY'] 
    end 
    end 
end 

ロードは、ブロックが親のRailsアプリを渡されるので、初期化子 "config.stripe" 上

を.env。ダミーのアプリをローカルで実行しているとき、またはダミーのアプリをテストしているエンジンでエンジンを実行しているとき。これにより、Dummyアプリがルートの場所になります。混乱する部分はテストのためのもので、Engineルートパスに.envもロードされていましたが、エンジンにロードされませんでした。

したがって、.envはダミーのアプリのルートに移動する必要があります。 Rails :: appではなくエンジンによって読み込まれますが。エンジンはすべての親アプリENVを取得しますが、ちょっと混乱しますが、最後に意味があります。

関連する問題