12

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...)

Misha Moroshko
  • 166,356
  • 226
  • 505
  • 746

4 Answers4

9

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?

Michael De Silva
  • 3,808
  • 1
  • 20
  • 24
2

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.

prikha
  • 1,853
  • 1
  • 16
  • 26
0

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.

Sinan Taifour
  • 10,521
  • 3
  • 33
  • 30
-1

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

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

Pierre Valade
  • 3,388
  • 3
  • 24
  • 29