2011-05-09 48 views
25

一個相同的問題已經被問過 AssetTagHelper::image_path outside views 但解決方案並不爲Rails工作3如何使用IMAGE_PATH裏面的Rails 3控制器

我有哪裏我使用JSON格式返回一些數據的要求,部分數據需要返回圖像的完整路徑。我在控制器中構建響應並調用render:json。我還在environment.rb中指定了一個asset_host,所以我需要一種方法將其包含在來自Rails控制器內部的返回數據中。

回答

39

在執行「查看」任務(如生成鏈接)時,您可以在控制器中使用view_context。關於它的好處是你不必包括視圖助手在你的控制器。

例如在你的控制器,你可以創建一個變量,這將是一個HTML鏈接link_tourl_for如果你只是想鏈接,'only_path'選項設置爲false應該給你絕對的URL。

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

希望這會有所幫助。

+0

這是一個很棒的提示。我希望它更明顯,謝謝! – 2011-05-10 02:38:42

+0

對於我來說,我需要爲文件名中包含摘要的資源生成CSS圖像url。感謝你,巴洛,我想出了這個:'「url(#{view_context.asset_path('dir/filename.png')})」' – 2011-10-14 14:19:45

相關問題