Как упростить render_to_string в Rails 3?

Чтобы отобразить партиал в Rails 3, я делаю:

render 'my_partial', :my_object => my_value

Чтобы получить частичный результат в виде строки, я делаю:

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

Можно ли написать последний короче? (например, чтобы опустить :partial или :locals, как я делаю с render) (я пытался, но получаю ошибки...)


person Misha Moroshko    schedule 20.06.2011    source источник


Ответы (4)


Не похоже, что он может быть короче, Ref. Если вы чувствуете, что это слишком долго, вы можете скрыть его во вспомогательном методе и просто передать различные параметры?

person Michael De Silva    schedule 20.06.2011

Иногда вы могли бы сделать что-то вроде

 render_to_body "path_to_file"

и он пропускает макет, но все же вам нужно использовать переменные экземпляра внутри вашего частичного.

person prikha    schedule 30.05.2012

Вы всегда можете добавить свой собственный метод в ApplicationController и сделать его доступным в качестве вспомогательного метода, если вам нужно использовать его в представлениях.

person Sinan Taifour    schedule 05.11.2013

Я бы использовал Mailer для этого. А потом делай.

MyMailer.my_method.body.encoded. Вы также можете использовать помощников таким образом.

person Pierre Valade    schedule 12.09.2012
comment
Это кажется очень хакерским. - person Sinan Taifour; 05.11.2013