Ruby on rails 基于Rails环境在Rails javascript资源中动态设置值

Ruby on rails 基于Rails环境在Rails javascript资源中动态设置值,ruby-on-rails,asset-pipeline,Ruby On Rails,Asset Pipeline,我有一个用于Recury的js文件: (function() { // Required Recurly.config({ subdomain: 'MYSUBDOMAIN', currency: 'USD' }); })(); 我希望能够根据我的Rails环境切换subdomain属性,但要使此javascript可用于资产管道。这是否可能在资产管道中实现,或者实现同等功能的最佳方式是什么 这是一个令人失望的黑客解决方案,但您可以在包含资产管道化JS之前在文档

我有一个用于Recury的js文件:

(function() {

  // Required
  Recurly.config({
    subdomain: 'MYSUBDOMAIN',
    currency: 'USD'
  });

})(); 

我希望能够根据我的Rails环境切换subdomain属性,但要使此javascript可用于资产管道。这是否可能在资产管道中实现,或者实现同等功能的最佳方式是什么

这是一个令人失望的黑客解决方案,但您可以在包含资产管道化JS之前在文档的
中设置一个全局变量,然后在以后使用该变量,例如:

应用程序.html.erb
中:

<head>
    ...
    <%= javascript_tag "var subdomain = '#{request.subdomains.join(".")}';" %>
    <%= javascript_include_tag "application" %>
    ...
</head>

嗨,巴里,欢迎来到SO!如果答案适合你,不要忘记以投票/接受的形式给其他用户反馈。或者,如果答案不起作用,请留言说明为什么不起作用:)谢谢!这样做:
var subdomain='#{RECURLY_subdomain}';“
将其放在config/initializer下的常量文件中,似乎不会编译文本,但…:
RECURLY\u SUBDOMAIN=“MYSUBDOMAIN“
想法?我猜这是因为我是一个ruby var范围的新手,我希望这比什么都重要。然而,我想这并不能直接回答我原来的问题。。。还没有办法进入rails环境吗?因为在rails初始化之前,正在编译资产管道?
var子域…
代码实际上让旧的JavaScript感到厌烦。这样做的目的是将Ruby变量注入JS变量中,以便JS的其余部分可以使用它。是的,关于在资产管道中你可以(或更多不能)做什么,你是正确的。本质上,您只能在编译时访问环境,也就是说,您不能访问请求对象,因为您的资产已经生成并作为静态文件使用。
(function() {

  // Required
  Recurly.config({
    subdomain: subdomain,
    currency: 'USD'
  });

})();