Forum: Ruby on Rails Absolute image URL?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Sven (Guest)
on 2009-01-27 21:54
(Received via mailing list)
I'm generating an XML feed to be used from outside of a Rails
application. The feed should include URLs for associated images. I'm
using image_path to generate the image URLs. This respects
relative_url_root, but all it gives me is the absolute path of the
image relative to the domain root (e.g. /image_assets/1234/
my_image.jpg). Is there a standard way to get fully specified absolute
URLs to images? I looked at url_for, which implements an :only_path
option, but that option is only available for controller paths.

Thanks,

Sven
Rob B. (Guest)
on 2009-01-27 22:58
(Received via mailing list)
On Jan 27, 2009, at 2:53 PM, Sven wrote:
>
> Sven


Try image_url rather than image_path

-Rob

Rob B.    http://agileconsultingllc.com
removed_email_address@domain.invalid
Sven (Guest)
on 2009-01-27 23:07
(Received via mailing list)
On Jan 27, 3:57 pm, Rob B. <removed_email_address@domain.invalid>
wrote:
> Try image_url rather than image_path

Sadly that method does not seem to exist (at least not in
ActionView::Helpers::AssetTagHelper or in the Rails API docs). I wish
it did!

-Sven
Rob B. (Guest)
on 2009-01-28 01:47
(Received via mailing list)
On Jan 27, 2009, at 4:06 PM, Sven wrote:

>
> On Jan 27, 3:57 pm, Rob B. <removed_email_address@domain.invalid>
> wrote:
>> Try image_url rather than image_path
>
> Sadly that method does not seem to exist (at least not in
> ActionView::Helpers::AssetTagHelper or in the Rails API docs). I wish
> it did!
>
> -Sven


So write one!  (or try this untested one)

def image_url(source)
   abs_path = image_path(source)
   unless abs_path =~ /\Ahttp/
     abs_path = "http#{'s' if https?}://#{host_with_port}/#{abs_path}"
   end
   abs_path
end

Put it in a helper such as app/helpers/application_helper.rb

-Rob

Rob B.    http://agileconsultingllc.com
removed_email_address@domain.invalid
This topic is locked and can not be replied to.