在使用帮助程序(form,javascript,css等)时,如何配置Ruby on Rails以输出标准HTML代码而不是XHTML?
我不希望最后有斜杠:
<input name="email" type="text" />
答案 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)
请参阅http://railsforum.com/viewtopic.php?id=21941
- MarkusQ
答案 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