Подтвердить что ты не робот

HAML: удалить пробел после слова "link_to"

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

= link_to "Login", "#"

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

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

Однако это кажется невозможным, когда вставлен код Rails.

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

что приведет к отображению следующего HTML:

Login,

а не

Login ,

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

Login,Profile

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

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

который становится довольно утомительным

Ответ 3

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

= link_to "Login", "#"
#something_else>

Ответ 4

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

Я обычно использую:

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

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

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

Ответ 5

Здесь другое плохое альтернативное решение для удаления пробелов между несколькими линиями рельсов с использованием фильтра 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')