我试过,包括::的ActionView ::助手和AssetTagHelper一堆的变体,但我总是得到一个错误说NameError: undefined local variable or method
配置”主:Object`从rake任务中访问compute_asset_host?
更多信息更新
我需要能够引用根据环境存储在不同服务器上的资源。在我的开发机器上,它将在localhost:3000上引用,在生产服务器上它将位于一个CDN地址,并且将在另一个CDN地址上启动。很明显,我们首先要在本地测试这个rake任务,然后进行分段测试,然后再进行分段测试,因此rake任务需要能够根据资产主机配置变量生成URL。我实际上甚至创建了一个名为asset_path
的ApplicationHelper方法来在我的视图中执行此操作,但它基本上只是compute_asset_host的别名。但是,如果我将ApplicationHelper包含在我的rake任务中并调用asset_path
它会抱怨compute_public_path未定义,并且如果我包含(或扩展)ActionView :: Helpers :: AssetTagHelper,它会在compute_asset_host内部抱怨undefined local variable or method 'config' for main:Object
。所以我需要以某种方式调用任何实例化ActionView :: Helpers使用的配置容器,以便compute_asset_host可以根据环境返回适当的URL。
您可以添加更多的细节,以你试图完成什么?我不清楚为什么你想在Rake任务中调用View助手。 – Midwire
用更多信息更新了OP –