Łączenie content_tag i block.call

Mam taki kod:

def test(..., &block) ... lb = label(...) if ... lb.to_s + content_tag(:div, ...) do help = content_tag(:span, ...) block.call + help end
Kod zwraca błąd że nie może wykonać ‘+’, co jest logiczne, próbowałem użyć metody concat, ale nie jest ona rozpoznawana. To do block.call dopisałem .to_s.html_safe (był to strzał, który okazał się nie trafiony) bo kod html wypisywany jest w przeglądarce.

Tu masz przykład użycia content_tag i &block w helperze:

def panel(&block) content_tag(:div, content_tag(:div, :class => "content", :style => "width:95%", &block) + content_tag(:div, close(), :class => "actions") + content_tag(:div, tag(:span), :class => "clear") + '</div>'.html_safe,:class => "relations") end

oh, jaki piękny kod :smiley:

@wafcio zastanów się czy nie lepiej zrenderować w helperze partiala albo użyć cells/apotomo

Do pewnego gema dodaje dodatkowe funkcje, przykład zaprezentowany przez apohllo jest ok, tylko, że u mnie niektóre tagi mogą wystąpić ale nie muszą i teraz mam przy każdej takiej sytuacji if’a no i metoda się rozbudowała…