Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么rails html_安全方法会改变我的html结构?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 为什么rails html_安全方法会改变我的html结构?

Ruby on rails 为什么rails html_安全方法会改变我的html结构?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在传递一个自动关闭的锚定标记,没有文本值,只有一个名称: <% test = '<h4><a name="139-01"/>test</h4>' %> 当我输出值时,它如下所示: <h4><a name="139-01"/>test</h4> 然后我尝试使用.html\u safe将其输出为html标记 <%= test.html_safe %> 生成的代码是: <h4><

我正在传递一个自动关闭的锚定标记,没有文本值,只有一个名称:

<% test = '<h4><a name="139-01"/>test</h4>' %>
当我输出值时,它如下所示:

<h4><a name="139-01"/>test</h4>
然后我尝试使用.html\u safe将其输出为html标记

<%= test.html_safe %>
生成的代码是:

<h4><a name="139-01">test</a></h4>
正如您在上面看到的,由于某种原因,锚定标记从一个自动关闭标记更改为一个包含文本测试的标记。有人知道为什么会这样吗

如果我将字符串设置为:

<% test = '<h4><a name="139-01"></a>test</h4>' %>
它按预期工作:

<h4><a name="139-01"></a>test</h4>

问题是我没有权限更改实际数据中的标记。

这不是Ruby on Rails更改HTML

自动关闭超链接只是无效的HTML。浏览器会尽力解析和理解这个无效的HTML,浏览器会在认为最有意义的地方添加结束标记

与此相关:

非常有限的列表可以是自动关闭的。 和
改变HTML不是RubyonRails

自动关闭超链接只是无效的HTML。浏览器会尽力解析和理解这个无效的HTML,浏览器会在认为最有意义的地方添加结束标记

与此相关:

非常有限的列表可以是自动关闭的。 和
您是否仔细检查了Ruby实际添加结束语的页面的HTML源代码?我认为a是无效的HTML,因此猜测浏览器只是尽力理解这个无效的HTML,并在它认为有意义的地方添加结束标记。我找到了一种方法来更改输入数据,解决了这个问题,但我仍然想理解.HTML\u safe更改标记的原因。这个问题似乎是suggset提出的自动关闭标记在HTML5中无效HTML5的行为基本上就像尾部斜杠不存在一样。HTML5语法中没有自动关闭标记@斯皮克曼:我认为你的答案是正确的。浏览器正在更改标记,因为它正在尝试修复标记。如果我将标记直接放在浏览器中,它将以错误的方式显示。如果你想做一个正式的回答,我会接受的。你是否仔细检查了Ruby实际添加了结束语的页面的HTML源代码?我认为a是无效的HTML,因此猜测浏览器只是尽力理解这个无效的HTML,并在它认为有意义的地方添加结束标记。我找到了一种方法来更改输入数据,解决了这个问题,但我仍然想理解.HTML\u safe更改标记的原因。这个问题似乎是suggset提出的自动关闭标记在HTML5中无效HTML5的行为基本上就像尾部斜杠不存在一样。HTML5语法中没有自动关闭标记@斯皮克曼:我认为你的答案是正确的。浏览器正在更改标记,因为它正在尝试修复标记。如果我将标记直接放在浏览器中,它将以错误的方式显示。如果你愿意作正式答复,我将接受。