如何在Rails 3 Controller中使用image_path

在AssetTagHelper :: image_path外部视图之前已经询问过相同的问题,但该解决方案不适用于Rails 3。

我有一个要求,我使用JSON格式返回一些数据,部分数据需要返回图像的完整路径。 我在控制器中构建响应并调用render:json。 我还在environment.rb中指定了asset_host,因此我需要一种方法将其包含在Rails控制器内部的返回数据中。

在执行“查看”任务(如生成链接)时,可以在控制器中使用view_context 。 关于它的好处是您不必在控制器中包含视图助手。

例如,在你的控制器中你可以创建一个变量,它将是一个带有link_tourl_for的html链接,如果你只想要链接,’ only_path ‘选项设置为false应该给你绝对的url。

link = view_context.url_for(:action => 'login', :controller => 'members', :only_path => false) 

希望这可以帮助。