【发布时间】:2011-08-06 12:15:13
【问题描述】:
以下代码在 HTML 中留下一个空格:
= link_to "Login", "#"
通常,HAML 允许通过将“>”放在行尾来删除它,例如:
%input#query{:type => "text", :value => "Search"}>
但是,当插入 Rails 代码时,这似乎是不可能的。
我该如何解决这个问题?
【问题讨论】:
标签: ruby-on-rails haml
以下代码在 HTML 中留下一个空格:
= link_to "Login", "#"
通常,HAML 允许通过将“>”放在行尾来删除它,例如:
%input#query{:type => "text", :value => "Search"}>
但是,当插入 Rails 代码时,这似乎是不可能的。
我该如何解决这个问题?
【问题讨论】:
标签: ruby-on-rails haml
span 的解决方案并不理想,因为它添加了一个需要处理的不必要的 html 标签,如果你想避免<span>,你应该使用 HAML 的succeed:
= succeed "," do
= link_to "Login", "#"
这将导致以下 HTML 被呈现:
Login,
而不是
Login ,
注意,如果要达到以下效果:
Login,Profile
即逗号和两个链接之间没有任何空格,您应该执行以下操作:
= succeed link_to "Profile", '#' do
= succeed "," do
= link_to "Login", '#'
这很乏味
【讨论】:
precede,不需要你转单。 haml.info/docs/yardoc/Haml/Helpers.html#precede-instance_method
这个怎么样?
%span>= link_to "Login", "#"
它在链接周围增加了一个额外的跨度,但这些都是无害的。
我发现 haml 可能对这些极端情况有一点问题 :(
【讨论】:
您可以在下一行使用>。
= link_to "Login", "#"
#something_else>
【讨论】:
对于任何来到这个帖子的人,我发现当链接位于句子末尾时,我最需要删除空格。
我通常会使用:
= link_to("Login", '#) + '. '
导致:
<a href="#">Login</a>.
【讨论】:
这是另一个使用 :ruby 过滤器去除几条轨道线之间空格的糟糕替代解决方案:
:ruby
haml_io.write f.hidden_field('params_ar[][units]', value: 'time')
haml_io.write f.text_field("params_ar[][minutes]", value:pars[param_num][:minutes],class:'time-input minutes', placeholder:'mm')
haml_io.write ':'
haml_io.write f.text_field("params_ar[][seconds]", value:pars[param_num][:seconds],class:'time-input seconds' ,placeholder:'ss')
【讨论】: