我希望我的查看源代码干净整洁,但每当我使用 <%= => 标签时,该标签之前的空格都会被忽略。
.html.erb:
查看来源:
请注意 Yield、crfs_meta 和样式表链接标签会忽略标签前的空格。我使用标准的 2 个空格作为我的“制表符”。对于 Yield 和当我呈现部分时,我可以补偿删除的空格并将其放在部分中,但我不能为脚本和样式表标签这样做。有没有办法让我保留空白???
我刚刚意识到布局和 yield 的渲染标记保留了上一行的空白(4 个选项卡,渲染在 6 个选项卡上)但是在该布局中我必须将第一行放在 0 选项卡,然后是下一行在 4 个选项卡处一行,使其在 6 个选项卡处内联...
最佳答案
问题不在于 <%=
正如您的编辑建议的那样。这是因为您在 <%= ... %>
中调用的方法 block 正在生成更多行的输出,而那些后续行不尊重您的缩进。
据我所知,没有真正巧妙的方法来解决它。您可以将这些方法的输出中的任何换行符替换为正确的缩进,但您需要牺牲代码的可读性来换取输出的可读性。
例如,像这样的东西:
<%= csrf_meta_tags.gsub("\n", "\n ").html_safe %>
或者您可以编写一个辅助方法(在 application_helper.rb 中)来执行此操作:
def indent_output(output, indentation = " ")
output.gsub("\n", "\n" + indentation).html_safe
end
然后你的相关 View 代码是:
<%= indent_output(csrf_meta_tags, " ") %>
<%= indent_output(stylesheet_link_tag("bootstrap.min", "main"), " ") %>
关于html - Rails 在 <%= 插入之前忽略空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18466302/