2010-11-17 4 views
0

Я хочу написать вспомогательный метод для печати списка переключателей. Очевидный способ сделать это - вернуть хелпер-метод в строку html-кода для моего файла представления.Rails: печать на страницу, а не консоли?

Но это просто некрасиво, добавив <li> после <li> в строку, а затем вернув ее.

Код был бы более читабельным, конечно, если бы я мог просто печатать каждую строку html по очереди. Могу ли я печатать строки в выходной поток и заканчивать ли это на моей странице (а не на консоли сервера)?

(я использую рельсы 2.3.5, кстати.)

ответ

1

Вы можете создать список в вспомогательный метод, вызвав content_tag и переходя в нужном элементе и блок, который делает некоторые HTML (как radio_button), а затем объединение всего беспорядка в строку, например (воздух код):

module SomeHelper 
    def radio_button_list(things) 
    things.collect do |thing| 
     content_tag(:li) { radio_button(thing.foo, thing.bar, thing.baz) } 
    end.join 
    end 
end 
+0

Это рекомендуется использовать CONCAT вокруг content_tag здесь, а не 'join' в конце. Это исключительно полезно, если у вас несколько уровней вложенности. –

+0

Спасибо, должным образом отметил. – zetetic

+0

Я считал, что конкатенация длинной строки, а затем вывод на страницу. Мне не хватает чистоты, которую я надеялся достичь, но я полагаю, что для этого нет ничего другого. Спасибо. – JellicleCat