Misha Moroshko
Misha Moroshko

Reputation: 171341

How to simplify "render_to_string" in Rails 3?

To render a partial in Rails 3 I do:

render 'my_partial', :my_object => my_value

To get partial's result as string I do:

render_to_string(:partial => 'my_partial', :layout => false, 
                 :locals => {:my_object => my_value})

Is this possible to write the last one shorter ? (e.g. to omit :partial or :locals like I do with render) (I tried, but get errors...)

Upvotes: 12

Views: 18404

Answers (4)

Sinan Taifour
Sinan Taifour

Reputation: 10795

You can always add your own method to ApplicationController and make it available as a helper method if you need to use it in views.

Upvotes: 0

Pierre Valade
Pierre Valade

Reputation: 3409

I would use a Mailer for that. And then do.

MyMailer.my_method.body.encoded. You can use helpers this way too.

Upvotes: -1

prikha
prikha

Reputation: 1853

Sometimes you could do something like

 render_to_body "path_to_file"

and it skips layout but still you have to use instance variables inside your partial.

Upvotes: 2

Michael De Silva
Michael De Silva

Reputation: 3818

Doesn't seem like it could get any shorter, Ref. If you feel it's too long you could hide it in a helper method, and just pass the various params?

Upvotes: 9

Related Questions