如何将rails request.env转换为javascript?
我有下一个js.erb文件:如何将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中的第二行
<% 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