Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use image_path inside Rails 3 Controller

An identical question has been asked before AssetTagHelper::image_path outside views but the solution does not work for Rails 3.

I have a requirement where I am returning some data using JSON format and part of the data needs to return the full path of the image. I am building the response in the controller and calling render :json. I am also specifying an asset_host in the environment.rb so I need a way to include that in the returned data from inside a Rails controller.

like image 483
Jhony Fung Avatar asked May 09 '11 22:05

Jhony Fung


1 Answers

You can use view_context in your controller when doing 'view' tasks like generating links. The good thing about it is you don't have to include the view helpers in your controller.

e.g. in your controller you can create a variable which will be a html link with link_to or url_for if you just want the link, 'only_path' option set to false should give you absolute url.

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

Hope this helps.

like image 112
David Barlow Avatar answered Oct 20 '22 19:10

David Barlow