不幸的是,这会在链接内产生尾随空格,导致尾随下划线丑陋。现在虽然可读性较差,但我可以接受: '> "> 尽管如此,如果-6ren">
gpt4 book ai didi

ruby-on-rails - Rails 中 Django 模板的“无空间”等价物

转载 作者:行者123 更新时间:2023-12-04 05:42:32 25 4
gpt4 key购买 nike

请注意以下内容的可读性和平衡性:

<li class='aclass anotherclass <%= maybeaconditionalclass %>'>
<a href="<%= some stuff %>">
<%= some other stuff %>
</a>
</li>

不幸的是,这会在链接内产生尾随空格,导致尾随下划线丑陋。现在虽然可读性较差,但我可以接受:
<li class='apossibleclass anotherclass <%= maybeaconditionalclass %>'>
<a href="<%= some stuff %>"><%= some other stuff %></a>
</li>

尽管如此,如果我现在考虑这种事情,同样的问题仍然存在:
li.apossibleclass:after {
content: "/";
}

因为结束 A 和 LI 之间的空白妨碍了应该坚持我的列表项末尾的内容。我只能产生那种丑陋的困惑作为解决方法:
<li class='apossibleclass anotherclass <%= maybeaconditionalclass %>'>
<a href="<%= some stuff %>"><%= some other stuff %></a></li>

Django 提出了一个很好的解决方案: {% spaceless %} ,所以我正在寻找等效的 {% spaceless %} Rails erb 模板中的标签。

最佳答案

是的,这将是一个有用的功能,据我所知,Rails 中没有类似的功能。所以我已经编码了。

# Strip all whitespace between the HTML tags in the passed block, and
# on its start and end.
def spaceless(&block)
contents = capture(&block)

# Note that string returned by +capture+ is implicitly HTML-safe,
# and this mangling does not introduce unsafe changes, so I'm just
# resetting the flag.
contents.strip.gsub(/>\s+</, '><').html_safe
end

这是您可以放置​​在 application_helper.rb 中的 helper ,然后像这样使用:
<%= spaceless do %>
<p>
<a href="foo/"> Foo </a>
</p>
<% end %>

...这将导致输出字符串像
<p><a href="foo/"> Foo </a></p>

遗憾的是,这只适用于 Rails 3。Rails 2 支持这样的功能需要对 ERb 进行一些肮脏的黑客攻击。

关于ruby-on-rails - Rails 中 Django 模板的“无空间”等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6925176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com