[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 = "<ul>\n"       categories.each { |subcategory|         ret += "<li>\n"         ret += link_to h(subcategory.name), admin_categories_path         ret += link_to "&nbsp;&nbsp;"+h("<add>"), admin_categories_path         ret += "\n"         if subcategory.children.size > 0           ret += list_all_categories(subcategory.children)         end         ret += "</li>\n"       }       ret += "</ul>\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 ?

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 = "<ul>\n" categories.each { |subcategory| ret += "<li>\n" ret += link_to h(subcategory.name), admin_categories_path ret += link_to "&nbsp;&nbsp;"+h("<add>"), admin_categories_path ret += "\n" if subcategory.children.size > 0 ret += list_all_categories(subcategory.children) end ret += "</li>\n" } ret += "</ul>\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 ...