Как упростить "render_to_string" в Rails 3? - PullRequest
12 голосов
/ 20 июня 2011

Для рендеринга частичного в 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) (Я пытался, но получаю ошибки ...)

Ответы [ 4 ]

9 голосов
/ 20 июня 2011

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

2 голосов
/ 30 мая 2012

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

 render_to_body "path_to_file"

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

0 голосов
/ 05 ноября 2013

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

0 голосов
/ 12 сентября 2012

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

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

...