HAML: удалить пробел после "link_to" - PullRequest
28 голосов
/ 15 апреля 2011

Следующий код оставляет пробел в HTML:

= link_to "Login", "#"

Обычно HAML позволяет удалить его, поставив ">" в конце строки, например:

%input#query{:type => "text", :value => "Search"}>

Однако это кажется невозможным при вставке кода Rails.

Как мне это исправить?

Ответы [ 5 ]

22 голосов
/ 06 февраля 2014

Решение с span не является идеальным, так как оно добавляет ненужный HTML-тег, который потребует обработки, если вы хотите избежать <span>, вам следует использовать succeed:

= succeed "," do
  = link_to "Login", "#"

HAML, который будетв результате будет отображен следующий HTML-код:

Login,

вместо

Login ,

Обратите внимание, что если вы хотите получить следующий результат:

Login,Profile

т.е. нетмежду пробелами и двумя ссылками вы должны сделать следующее:

= succeed link_to "Profile", '#' do
  = succeed "," do
    = link_to "Login", '#'

, что становится довольно утомительным

19 голосов
/ 15 апреля 2011

Как насчет этого?

%span>= link_to "Login", "#"

Добавляет дополнительный промежуток вокруг ссылки, но они довольно безопасны.

Я считаю, что у хамла могут быть проблемы с некоторыми из этих угловых случаев: (

8 голосов
/ 15 апреля 2011

Вы могли бы, но > в следующей строке.

= link_to "Login", "#"
#something_else>
0 голосов
/ 05 ноября 2015

Вот еще одно плохое альтернативное решение для удаления пробелов между несколькими линиями рельсов с помощью фильтра: 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')
0 голосов
/ 26 марта 2015

Для тех, кто заходит в эту тему, я считаю, что больше всего нужно удалять пробелы, когда ссылка находится в конце предложения.

Обычно я буду использовать:

= link_to("Login", '#) + '. '

, что приводит к:

<a href="#">Login</a>.

...