我正在使用 Stripe 让用户订阅我的 Rails 3.2 应用程序。我有一个订阅模型,在 JS 资产中我调用了该Stripe
对象。但我只在订阅过程的特殊布局文件中包含 Stripe javascript 文件。它不包含在我的主要应用程序布局中。
因此,如果我没有在主应用程序布局模板中包含 Stripe JS 文件,我当然会收到错误,因为 subscription.js.coffee 正在引用 Stripe。
除了我设置的特殊订阅模板之外,有没有办法不加载订阅资产?
我正在使用 Stripe 让用户订阅我的 Rails 3.2 应用程序。我有一个订阅模型,在 JS 资产中我调用了该Stripe
对象。但我只在订阅过程的特殊布局文件中包含 Stripe javascript 文件。它不包含在我的主要应用程序布局中。
因此,如果我没有在主应用程序布局模板中包含 Stripe JS 文件,我当然会收到错误,因为 subscription.js.coffee 正在引用 Stripe。
除了我设置的特殊订阅模板之外,有没有办法不加载订阅资产?
是的,您require_tree
的 application.js 清单文件中可能有。
这意味着您的所有coffeescript 文件,包括subscriptions.js.coffee 都包含在您的application.js 中。
接下来,您的布局中可能有与此类似的一行:
<%= javascript_include_tag 'application' %>
这意味着您的应用程序清单文件(包括 subscription.js.coffee 代码)包含在您的布局中。
解决方案是不在应用程序清单文件中包含这段代码。
因此,在您的 application.js 清单文件中而不是 using 中require_tree
,您可以执行以下操作:
//= require jquery
//= require jquery_ujs
//= require posts
//= require comments
在清单文件中,我假设您有其他布局,您可以包含这样的订阅。
//= require_jquery
//= require jquery_ujs
//= require subscriptions
请注意posts
和comments
是示例。