之前也问过一个相同的问题资产标签助手::image_path外部视图但该解决方案不适用于 Rails 3。
我有一个要求,即使用 JSON 格式返回一些数据,部分数据需要返回图像的完整路径。我正在控制器中构建响应并调用渲染:json。我还在 environment.rb 中指定了一个asset_host,所以我需要一种方法将其包含在 Rails 控制器内部返回的数据中。
您可以在控制器中使用view_context来执行"查看"任务,例如生成链接。这样做的好处是,您不必在控制器中包含视图帮助程序。
例如,在您的控制器中,您可以创建一个变量,该变量将是一个带有 link_to 或 url_for 的 HTML 链接,如果您只想要链接,"only_path"选项设置为 false 应该给你绝对 URL。
link = view_context.url_for(:action => 'login', :controller => 'members', :only_path => false)
希望这有帮助。