Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configure Rails to output HTML output instead of XHTML

How do I configure Ruby on Rails to output standard HTML code instead of XHTML when using helpers (form, javascript, css, etc.)?

I don't want to have the slash at the end:

<input name="email" type="text" />
like image 837
deepwell Avatar asked Feb 27 '09 17:02

deepwell


2 Answers

This answer is contained in the link provided by MarkusQ, but I figured I could spell it out exactly.

You have to modify the code than renders all tags, you can do that by including the following code into something like lib/dont_use_xhtml.rb

module ActionView::Helpers::TagHelper
  alias :tag_without_backslash :tag
     def tag(name, options = nil, open = true, escape = true)
        tag_without_backslash(name, options, open, escape)
     end 
  end 
like image 94
Kyle Boon Avatar answered Nov 01 '22 16:11

Kyle Boon


The solution does not work with the latest version of Rails. Some helpers will override the open method argument of 'open' to 'false'.

The following works for me in Rails 2.3.5:

module ActionView::Helpers::TagHelper
  def tag_with_html_patch(name, options = nil, open = true, escape = true)
    tag_without_html_patch(name, options, true, escape)
  end
  alias_method_chain :tag, :html_patch
end

Put that into an initializer.

like image 36
Seth Ladd Avatar answered Nov 01 '22 16:11

Seth Ladd