Сконфигурируйте Rails для вывода вывода HTML вместо XHTML - PullRequest
8 голосов
/ 27 февраля 2009

Как настроить Ruby on Rails для вывода стандартного HTML-кода вместо XHTML при использовании помощников (form, javascript, css и т. Д.)?

Я не хочу иметь косую черту в конце:

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

Ответы [ 4 ]

5 голосов
/ 06 марта 2009

Этот ответ содержится в ссылке, предоставленной 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 
2 голосов
/ 28 декабря 2009

Решение не работает с последней версией 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

Поместите это в инициализатор.

1 голос
/ 27 февраля 2009
0 голосов
/ 10 августа 2010

Для рельсов 2.3:

Установите гем 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...