如何将rails request.env转换为javascript?

如何将rails request.env转换为javascript?,javascript,ruby-on-rails,ruby,erb,Javascript,Ruby On Rails,Ruby,Erb,我有下一个js.erb文件: <% if Rails.env == 'production' %> <% if request.env['SERVER_NAME'] == 'example.com' %> $(function () { ... ... }); <% end %> <% end %> $(函数(){ ... ... }); 如何在没有Ruby的情况下转换JavaScript中的第二行

我有下一个js.erb文件:

<% if Rails.env == 'production' %>
  <% if request.env['SERVER_NAME'] == 'example.com' %>
    $(function () {
     ...
     ...
    });
  <% end %>
<% end %>

$(函数(){
...
...
});

如何在没有Ruby的情况下转换JavaScript中的第二行?

服务器名称作为字符串输出,并在客户端进行比较:

<% if Rails.env == 'production' %>
  if ('<%= request.env['SERVER_NAME'] %>' == 'example.com') {
    $(function () {
     ...
     ...
    });
  }
<% end %>

如果(“”==“example.com”){
$(函数(){
...
...
});
}
如果第二行“只能包含javascript”(我强烈质疑这一点),那么您可以将Ruby位移到一个变量:

var serverName = '<%= request.env['SERVER_NAME'] %>';

<% if Rails.env == 'production' %>
  if (serverName == 'example.com') {
    $(function () {
     ...
     ...
    });
  }
<% end %>
var serverName='';
if(serverName==“example.com”){
$(函数(){
...
...
});
}
我发现答案如下:

<% if Rails.env == 'production' %>
 if (window.location.hostname == 'example.com') {
   $(function () {
   ...
   ...
   });
  }
<% end %>

if(window.location.hostname==“example.com”){
$(函数(){
...
...
});
}

在我的例子中,第二行必须只包含javascript。@MicRum这太武断了。如果它只能包含JavaScript,则将Ruby内容移到一个变量中。请参阅update.My js.erb文件包含在application.js中,因此在服务器上编译资产时,请将其应用于request.env