How can I disable automatic conversion of HTML tags in Rails3? I have output in some controller view. For example I have method which outputs simple HTML link set..
[:en, :de].map{ |locale| link_to locate.to_s.upcase , { :locale => locate } ...
In view I’m calling my method <%= my_method %>
As a result I get this:
| <a href="/login?class=language_selected&amp;locale=en">EN</a>
How can I disable it?
I haven’t worked with Rails3 so no guarantees. but it looks like this has to do with the fact that your method returns a list.
Rails will usually format internal data structures for output by escaping the special characters and displaying the html escaped interpretation of your data.
Try tacking a .join onto the end of your map call to return a string
Also rwilliams aka r-dub’s suggestion to use raw will probably be necessary addition to this code. raw on a list however may give you an undesirable result probably because of an internal
to_stringcall. Which is an implicit join(“”). So add the raw to the method call in addition to returning a string.