如何在haml中添加空格

时间:2017-10-17 07:48:25

标签: ruby-on-rails ruby haml

我的haml文件中有以下几行。

(Requested:
                            %strong<>
                              = comment.commentable.requested_check_in.present? ? comment.commentable.requested_check_in.strftime("%m/%d/%Y") : ""
                              ="-"
                              = comment.commentable.requested_check_out.present? ? comment.commentable.requested_check_out.strftime("%m/%d/%Y") : ""
                            , Actual:
                            %strong<>
                              = comment.commentable.actual_check_in.present? ? comment.commentable.actual_check_in.strftime("%m/%d/%Y") : ""
                              ="-"
                              = comment.commentable.actual_check_out.present? ? comment.commentable.actual_check_out.strftime("%m/%d/%Y") : ""
                            ).

我想要的是在

之后有空格
(Requested: " "

但这条线无效。

3 个答案:

答案 0 :(得分:1)

&nbsp stands for non-breaking space

通常,HTML会截断文本中的空格。如果写入10个空格,则只显示1个空格。 &nbsp强制出现其他空格的一种方式,但很少采用“正确”方式。

有效的用例可能是:Mr.&nbspUsman - 强制两个单词一起出现在同一行。

您需要做的就是将文本用引号括起来:

= '(Requested: '
%strong= comment.commentable.requested_check_in&.strftime("%m/%d/%Y")
- if comment.commentable.requested_check_out
  = ' - '
  %strong= comment.commentable.requested_check_out.strftime("%m/%d/%Y")
= ')'
= '(Actual: '
%strong= comment.commentable.actual_check_in&.strftime("%m/%d/%Y")
- if comment.commentable.actual_check_out
  = ' - '
  %strong= comment.commentable.actual_check_out.strftime("%m/%d/%Y")
= ')'

然而,这段代码非常混乱。不建议将这种复杂的逻辑放在视图中。我建议将这个逻辑移到辅助方法中;也许考虑使用draper库?您重构的视图代码可能最终看起来像这样:

!= "(Requested: <strong>#{comment.commentable.requested_check_out_range}</strong>)"
!= "(Actual: <strong>#{comment.commentable.actual_check_out_range}</strong>)"

...条件逻辑移入./app/decorators/*.rb

如果您确实需要使用多个,非截断的空格来设置文本格式,那么您通常应使用white-space CSS property

答案 1 :(得分:0)

经过不同的平台后,我终于找到了解决方案,看到了代码。

(Requested:&nbsp
                            %strong<>
                              = comment.commentable.requested_check_in.present? ? comment.commentable.requested_check_in.strftime("%m/%d/%Y") : ""
                              &nbsp-&nbsp
                              = comment.commentable.requested_check_out.present? ? comment.commentable.requested_check_out.strftime("%m/%d/%Y") : ""
                            , Actual:&nbsp
                            %strong<>
                              = comment.commentable.actual_check_in.present? ? comment.commentable.actual_check_in.strftime("%m/%d/%Y") : ""
                              &nbsp-&nbsp
                              = comment.commentable.actual_check_out.present? ? comment.commentable.actual_check_out.strftime("%m/%d/%Y") : ""
                            ).

你可以在haml

中使用短代码(&amp; nbsp)

答案 2 :(得分:0)

如果在HAML上需要空格,请使用以下作弊代码:

  = parseFloat(elem.value) > 1.00 ? 'X' : "\n\b"

希望它会有用。