【发布时间】:2011-09-25 07:23:36
【问题描述】:
我尝试过包含 ActionView::Helpers::AssetTagHelper 和一堆它的变体,但我总是收到一条错误消息:NameError: undefined local variable or methodconfig' for main:Object`
更新了更多信息
我需要能够根据环境引用存储在不同服务器上的资源。在我的开发机器上,它将在 localhost:3000 上引用,在生产服务器上,它将在一个 CDN 地址上,而在暂存时,它将在另一个地址上。显然我们想先在本地测试这个 rake 任务,然后在 staging 上,最后在 staging 上,所以 rake 任务需要能够根据资产主机配置变量生成 URL。实际上,我甚至创建了一个名为 asset_path 的 ApplicationHelper 方法来在我的视图中执行此操作,但它基本上只是 compute_asset_host 的别名。但是,如果我在我的 rake 任务中包含 ApplicationHelper 并调用 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 助手。
标签: ruby-on-rails-3 rake actionview