Computes the path to an image asset in the public images directory. Full paths from the document root will be passed through. Used internally by image_tag to build the image path:
image_path("edit") # => "/images/edit" image_path("edit.png") # => "/images/edit.png" image_path("icons/edit.png") # => "/images/icons/edit.png" image_path("/icons/edit.png") # => "/icons/edit.png" image_path("http://www.example.com/img/edit.png") # => "http://www.example.com/img/edit.png"
If you have images as application resources this method may conflict with their named routes. The alias path_to_image is provided to avoid that. Rails uses the alias internally, and plugin authors are encouraged to do so.
# File actionpack/lib/action_view/helpers/asset_tag_helper.rb, line 274 def image_path(source) source.present? ? asset_paths.compute_public_path(source, 'images') : "" end
I would just use the path_to_image. I find that this is what works best. As it says above it can create problems.
Here is my code
def background_path(background) if background path_to_image background.file_name.normal else path_to_image "background_preview.jpg" end end def flavor_path(flavor) if flavor path_to_image flavor.file_name.normal else path_to_image("flavor_preview.jpg") end end
basic but gets the job done and it does not have problem with my pre built paths which are called image_path