[HAML + RAILS 3] cannot output the html from my view helper just output a string

I am stuck for hours with a view helper I cannot make it running
well .

In my haml view I wrote

%h3= I18n.t(:category_list)
#category-list
= list_all_categories(@categories)

and my helper just output all the html code as a STRING …

def list_all_categories(categories)
if categories.size > 0
ret = “

    \n”
    categories.each { |subcategory|
    ret += “
  • \n”
    ret += link_to h(subcategory.name), admin_categories_path
    ret += link_to "  “+h(”"),
    admin_categories_path
    ret += “\n”
    if subcategory.children.size > 0
    ret += list_all_categories(subcategory.children)
    end
    ret += “
  • \n”
    }
    ret += “
\n”
end
end

as you noticed I have a nested function in it … the output html is
correct but it’s a string in the view, not the raw html

what should I use then ?

On 20 January 2011 14:40, Erwin [email protected] wrote:

and my helper just output all the html code as a STRING …
if subcategory.children.size > 0
ret += list_all_categories(subcategory.children)
end
ret += “\n”
}
ret += “\n”
end

You need to tell rails 3 that this is html save so insert here
ret.html_safe

Also make sure that you have escaped anything you got out of the db
and put into ret.

thanks, i’ll test it

= Haml::Engine.new(list_all_categories(@categories)).render(self)
in the view seems to render correctly …