Основная проблема заключается в том, что вы используете content_tag дважды, когда вам это не нужно. content_tag по существу вызывает content_tag_string .Вот источник content_tag_string
:
def content_tag_string(name, content, options, escape = true)
tag_options = tag_options(options, escape) if options
"<#{name}#{tag_options}>#{content}</#{name}>".html_safe
end
Вызов content_tag(text_field_tag :email, "email@domain.com")
выглядит следующим образом:
"<#{text_field_tag :email, "email@domain.com"}>"
, а text_field_tag уже создает полный HTML-тег (включает «<» и «> ").
Все, что вам нужно сделать, чтобы избавиться от лишних угловых скобок, это пропустить второй content_tag
:
content_tag(:span, text_field_tag(:email, "email@domain.com"), :class => "memail")+