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