我喜欢我的观看源代码很干净但是任何时候我都使用<%= =>在忽略该标记之前标记空格。
.html.erb:
观看来源:
请注意,Yield,crfs_meta和stylesheet链接标记会忽略标记之前的空格。我使用标准的2个空格作为我的“标签”。对于Yield和我渲染局部图时,我可以只补偿删除的空格并将其放在局部空间中,但我不能对脚本和样式表标签这样做。有没有办法让我的空白?
我刚刚意识到布局和产量的渲染标记保留了前一行的空白(4个标签,渲染在6个标签上)但在该布局中我必须将第一行放在0标签,然后是下一个4个标签处的行,以使其在6个标签处内联...
答案 0 :(得分:2)
问题不在于您的编辑建议的<%=
。这是因为您在<%= ... %>
块中调用的方法会产生更多的输出行,而后续的行不会影响您的缩进。
据我所知,目前还没有很好的解决方法。您可以使用正确的缩进替换这些方法的输出中的任何换行符,但是您可以在代码中交换可读性以便在输出中读取。
例如:
<%= csrf_meta_tags.gsub("\n", "\n ").html_safe %>
或者您可以编写辅助方法(在application_helper.rb中)来执行此操作:
def indent_output(output, indentation = " ")
output.gsub("\n", "\n" + indentation).html_safe
end
然后您的相关观看代码是:
<%= indent_output(csrf_meta_tags, " ") %>
<%= indent_output(stylesheet_link_tag("bootstrap.min", "main"), " ") %>