以前曾问过一个相同的问题 AssetTagHelper::image_path outside views 但该解决方案不适用于Rails 3.
我有一个要求,即我使用JSON格式返回一些数据,部分数据需要返回图像的完整路径。我在控制器中构建响应并调用render:json。我还在environment.rb中指定了asset_host,因此我需要一种方法将其包含在Rails控制器内部的返回数据中。
答案 0 :(得分:39)
在执行“查看”任务(如生成链接)时,您可以在控制器中使用 view_context 。关于它的好处是您不必在控制器中包含视图助手。
e.g。在您的控制器中,您可以创建一个变量,如果您只想要链接' only_path '选项,该变量将是 link_to 或 url_for 的html链接设置为false应该给你绝对的URL。
link = view_context.url_for(:action => 'login', :controller => 'members', :only_path => false)
希望这有帮助。