Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3.2:在application.js.erb中需要不同的js文件_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.1_Asset Pipeline - Fatal编程技术网

Ruby on rails Rails 3.2:在application.js.erb中需要不同的js文件

Ruby on rails Rails 3.2:在application.js.erb中需要不同的js文件,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Asset Pipeline,如何在Rails 3.2中的application.js.erb中要求不同的文件?我尝试了以下方法,但没有成功 <% if Rails.env == production %> //= require production_config.js <% else %> //= require other_config.js <% end %> //= require jquery //= require jquery_ujs //=需要生产配置.js

如何在Rails 3.2中的application.js.erb中要求不同的文件?我尝试了以下方法,但没有成功

<% if Rails.env == production %>
  //= require production_config.js
<% else %>
  //= require other_config.js
<% end %>
//= require jquery
//= require jquery_ujs

//=需要生产配置.js
//=需要其他_config.js
//=需要jquery
//=需要jquery\u ujs

您的示例将无法工作,因为
资产:预编译
在erb转换为clean js之前。而且你有错误的语法。什么是
/=require'production\u config.rb'
?可能是
'production\u config.js'
。但是你不应该在资产评论中写引号和文件扩展名

您可以编写config.js.erb文件,并在其中写入如下内容:

<% if Rails.env == production %>
  productionConfig();
<% else %>
  otherConfig();
<% end %>

您可以这样做,但需要在application.html.erb中包含代码(我建议在head操作中)

如果将production_config.js文件添加到“asset/javascript”文件夹中,则可以使用以下方法添加该文件:

<% if Rails.env == production %>
   <%= javascript_include_tag "production_config" %>
<% else %>
  <%= javascript_include_tag "other_config" %>
<% end %>


请确保不要将其称为production\u config.js.coffee(它们会自动绑定),也不要将其添加到application.js中。

链轮需要从文件开始设置
/=require
语句,因此它们无法工作

在这种情况下,您可以使用ruby方法:

另外,最好在单独的文件中进行。大概是这样的:

<% if Rails.env == production %>
  productionConfig();
<% else %>
  otherConfig();
<% end %>
application.js

//= require 'config'
//= require 'jquery'
config.js.erb

<% require_asset(Rails.env.production? ? 'production_config' : 'other_config') %>
<%
  paths = %w(config/settings.yml config/settings.local.yml config/settings)
  paths.map(&Rails.root.method(:join)).each { |full_path| depend_on(full_path) if File.exist?(full_path) }
%>