Ruby on rails Rails资产管道Rails.application.assets.instance#variable_get(';@environment';)返回零
我正在尝试动态编译javascript,然后将其添加到Sprocket存储中,以使其可用。我研究的每个地方都建议使用以下代码来注册javascript:Ruby on rails Rails资产管道Rails.application.assets.instance#variable_get(';@environment';)返回零,ruby-on-rails,asset-pipeline,assets,Ruby On Rails,Asset Pipeline,Assets,我正在尝试动态编译javascript,然后将其添加到Sprocket存储中,以使其可用。我研究的每个地方都建议使用以下代码来注册javascript: env = Rails.application.assets.is_a?(Sprockets::Index) ? Rails.application.assets.instance_variable_get('@environment') : Rails.application Rails.application.config.assets.
env = Rails.application.assets.is_a?(Sprockets::Index) ? Rails.application.assets.instance_variable_get('@environment') : Rails.application
Rails.application.config.assets.digests[file_name] = env[file_name].digest_path
在生产环境中,
Rails.application.assets.instance\u variable\u get(“@environment”)
总是返回nil,我有什么地方做错了吗?还是应该添加其他内容?Rails.application.assets本身就是Sprocket::Environment的一个实例
@environment'是资产清单的一个变量,属于Rails.application,如下所示:
Rails.application.instance_variable_get('@assets_manifest')。instance_variable_get('@environment')
我在RAILS 3.2.15中遇到了类似的问题,
但它是Rails.application.assets返回零
quiet\u assets.rb:4:in
':未定义的方法logger='用于nil:NilClass(NoMethodError)
发布的行是
Rails.application.assets.logger=logger.new('logger.log')
我回到Rails控制台,发现Rails.application.assets刚刚返回了nil
我通过以下步骤解决此问题:
Rails.application.assets=Sprockets::Environment.new
在这一行之前:
Rails.application.assets.logger=logger.new('logger.log')
config.assets.enabled=true
有人能回答吗?天才投掷庆祝五彩纸屑>
env = Sprockets::Railtie.build_environment(Rails.application)