こんにちは私は昨日Passenger/CapistranoとNginxサーバーを使ってVPSにアプリケーションを配備しました。Braintree checkoutは配備後に `Braintree :: ConfigurationError`エラーを返します
注文ページにcheckout
ボタンを入力する場合を除き、すべてがスムーズに実行されています。その後
アプリがクラッシュし、production.log
でこのエラーラインは、事はMerchiant_id
が設定されていると私は完全に失われてるということですBraintree::ConfigurationError (Braintree::Configuration.merchant_id needs to be set): app/controllers/orders_controller.rb:22:in 'new'
あります。
デプロイメント前に、のAPIキーをProduction
個のAPIキーapplication.yml
に変更しました。私はを使ってAPI keys
を隠しています。
デプロイメント前にlocalhost
でこれを実行したところ、すべて正常に動作しました。
私はBraintreeガイドを何度も繰り返しました。私は間違ったことは見つけられません。
ここに何か不足していますか?
ここにはエラーが出ているorders_controller.rb
です。
class OrdersController < ApplicationController
include CurrentCart
before_action :set_cart, only: [:new, :create]
before_action :set_order, only: [:show, :edit, :destroy]
def index
@orders = Order.all?
end
def new
@images = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"]
@random_no = rand(5)
@random_image = @images[@random_no]
if @cart.product_items.empty?
redirect_to root_url, notice: 'Your Cart is Empty'
return
end
@order = Order.new
@client_token = Braintree::ClientToken.generate #this is line 22 were the error is
end
def create
@order = Order.new(order_params)
if @order.save
charge
if @result.success?
@order.add_product_items_from_cart(@cart)
Cart.destroy(session[:cart_id])
session[:cart_id] = nil
OrderNotifier.received(@order).deliver
redirect_to root_url, notice: 'Thank You for Your Order'
else
flash[:error] = 'Please Check Your Cart'
redirect_to root_url, alert: @result.message
@order.destroy
end
else
@client_token = Braintree::ClientToken.generate
render :new
end
end
def show
end
def destroy
@order.destroy
redirect_to root_url, notice: 'Order deleted'
end
private
def set_order
@order = Order.find(params[:id])
end
def order_params
params.require(:order).permit(:name, :email, :address, :city, :country)
end
def charge
@result = Braintree::Transaction.sale(
amount: @cart.total_price_usd,
payment_method_nonce: params[:payment_method_nonce])
end
end
[OK]を感謝を修正することを賭けることができる
~/YOURAPP/shared/config/application.yml
にあなたのマシン上で
application.yml
からコードをコピー&ペースト/それをチェックして....これが解決することを願っています – DaudiHellいいえ....サーバー上にapplication.ymlが見つかりませんでした。新しいエラーが発生しました。サーバ上に作成してくださいね。 – DaudiHell
申し訳ありません。 ...あなたはそれをしなければなりません...もしそれがうまくいくならば、私は答えを更新します – Slowboy