未定义的方法`stripe&#39;对于#<rails

时间:2016-06-25 19:36:12

标签: javascript ruby-on-rails stripe-payments

=“”

我正在尝试通过我的Rails应用程序上的Stripe执行我的第一个测试订单,我正在测试但是我得到了NoMethodError - 未定义的方法`stripe&#39;对于#,导致它的确切行是在我的表单文件的JS片段中。

编辑:添加错误的屏幕截图,将Rails.configuration.stripe更改为Rails.application.secrets让页面加载,但结帐会引发另一个错误(截图也附上)

error screenshot publishable error

&#13;
&#13;
< 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;
&#13;
&#13;

这是我的stripe.rb文件

&#13;
&#13;
Rails.configuration.stripe = {
  :publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
  :secret_key      => ENV['STRIPE_SECRET_KEY']
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]
&#13;
&#13;
&#13;

还有其他一些答案,但似乎没有人解决问题,感谢此处的任何帮助。

2 个答案:

答案 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]