配置Rails以输出HTML输出而不是XHTML

时间:2009-02-27 17:58:32

标签: html ruby-on-rails xhtml

在使用帮助程序(form,javascript,css等)时,如何配置Ruby on Rails以输出标准HTML代码而不是XHTML?

希望最后有斜杠:

<input name="email" type="text" />

4 个答案:

答案 0 :(得分:5)

这个答案包含在MarkusQ提供的链接中,但我想我可以完全拼写出来。

您必须修改代码而不是渲染所有标记,您可以通过将以下代码包含在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 

答案 1 :(得分:2)

该解决方案不适用于最新版本的Rails。一些帮助器会将open方法参数'open'覆盖为'false'。

以下在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

将它放入初始化器中。

答案 2 :(得分:1)

答案 3 :(得分:0)

对于导轨2.3

安装gem haml,然后添加以下初始化程序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