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

时间:2012-10-17 19:01:54

标签: ruby-on-rails asset-pipeline

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

(function() {

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

})(); 

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

1 个答案:

答案 0 :(得分:0)

这是一个令人失望的hacky解决方案,但您可以在包含资产流水线JS之前在文档的<head>中设置一个全局变量,然后再使用该变量,例如:

application.html.erb

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

在你的JS中:

(function() {

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

})();