我正在尝试通过我的Rails应用程序上的Stripe执行我的第一个测试订单,我正在测试但是我得到了NoMethodError - 未定义的方法`stripe'对于#,导致它的确切行是在我的表单文件的JS片段中。
编辑:添加错误的屏幕截图,将Rails.configuration.stripe更改为Rails.application.secrets让页面加载,但结帐会引发另一个错误(截图也附上)
error screenshot publishable error
< script >
var handler = StripeCheckout.configure({
key: '<%= Rails.configuration.stripe[:publishable_key] %>',
token: function(token, arg) {
document.getElementById("stripeToken").value = token.id;
document.getElementById("stripeEmail").value = token.email;
document.getElementById("chargeForm").submit();
}
});
document.getElementById('btn-order').addEventListener('click', function(e) {
var quantity = $('#quantity').val();
var total_price = (quantity * "<%= @meal.price %>") + "00";
$('#total_price').val(total_price);
handler.open({
name: "Sixerr",
description: "<%= @meal.title %>",
amount: total_price
});
e.preventDefault();
}); < /script>
&#13;
这是我的stripe.rb文件
Rails.configuration.stripe = {
:publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
:secret_key => ENV['STRIPE_SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
&#13;
还有其他一些答案,但似乎没有人解决问题,感谢此处的任何帮助。
答案 0 :(得分:2)
您需要确保stripe.rb
文件位于config/initializers
文件夹中,一旦完成,您需要重新启动网络服务器,以便加载初始化程序。
答案 1 :(得分:0)
请确保该文件位于config / initializers文件夹中, 下面是stripe.rb文件的配置
if Rails.env.development?
Rails.configuration.stripe = {
:publishable_key => 'pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
:secret_key => 'sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
end
Stripe.api_key = Rails.configuration.stripe[:secret_key]
if Rails.env.production?
Rails.configuration.stripe = {
:publishable_key => 'pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
:secret_key => 'sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
end
if Rails.env.test?
Rails.configuration.stripe = {
:publishable_key => 'pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxx',
:secret_key => 'sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxx'
}
end
Stripe.api_key = Rails.configuration.stripe[:secret_key]