Configure Rails to output HTML output instead of XHTML

后端 未结 4 2013
说谎
说谎 2021-02-04 16:34

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 t

相关标签:
4条回答
  • 2021-02-04 17:14

    See http://railsforum.com/viewtopic.php?id=21941

    -- MarkusQ

    0 讨论(0)
  • 2021-02-04 17:22

    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.

    0 讨论(0)
  • 2021-02-04 17:23

    For rails 2.3:

    Install the gem haml then add the following initializer config/initializers/force_html4.rb:

    Haml::Template::options[:format] = :html4
    
    module StandardistaHelper
      def tag(name, options = nil, open = false, escape = true)
        "<#{name}#{tag_options(options, escape) if options}>"
      end
    end
    
    ActionView::Base.send :include, StandardistaHelper
    
    ActionView::Helpers::InstanceTag.class_eval do
      def tag_without_error_wrapping(name, options = nil, open = false, escape = true)
        "<#{name}#{tag_options(options, escape) if options}>"
      end
    end
    
    0 讨论(0)
  • 2021-02-04 17:29

    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 
    
    0 讨论(0)
提交回复
热议问题