如何在Rails 3 Controller中使用image_path

时间:2011-05-09 22:20:52

标签: ruby-on-rails ruby-on-rails-3

以前曾问过一个相同的问题 AssetTagHelper::image_path outside views 但该解决方案不适用于Rails 3.

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

1 个答案:

答案 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)

希望这有帮助。