1

Мне нужно дать тегу моего тега идентификатор страницы для улучшения целевых селекторов css.Дополнительные пробелы вокруг content_for value

Для этого я поставил следующие в моей application.erb расположение:

<body id="<%= content_for :page_id %>"> 

Внутренний вид страницы только я могу тогда сделать это:

<% content_for :page_id do %> 
    <%='some-page-id'%> 
<% end %> 

Проблема заключается в том, что я получение лишних пробелов возвращалось по возвращенному значению, что привело к отображению тега тела тела, имеющего вид:

<body id=" some-page-id " > 

Это предотвращает работу id. У меня есть обходной путь, в месте, где я делаю это:

<% body_id = content_for :page_id %> 
<body id="<%= body_id.strip %>"> 

Но есть способ исправить это так, что content_for возвращает его значение без лишних пробелов? Что вызывает возврат этого лишнего пробела?

ответ

4

В чем причина этого лишнего пробела для возврата?

Пространство

<% content_for :page_id do %> 
    <%='some-page-id'%> 
<% end %> 

Вы можете попробовать это:

<%- content_for :page_id do -%> 
    <%='some-page-id'%> 
<%- end -%> 
+0

Боже, я чувствую себя дураком. Я искал пространство внутри <% = 'some-page-id'%>, когда, очевидно, это было пространство между <% content_for: page_id do%> и <% end %>. Я бы уничтожил это от стыда, но я думаю, что вы заслуживаете зеленого клеща, и я заслуживаю позора. – Undistraction

0

Это нормальное поведение Rails, я рекомендую вам добавить "идентификатор =" внутри content_for

<body "<%= content_for :page_id %>"> 

<% content_for :page_id do %> 
    <%='id="some-page-id"' %> 
<% end %> 
3

Вы всегда можете сделать его одним лайнером с:

<body id="<%= content_for(:page_id).strip %>"> 
0

@OscarDelBen правильно:

Это то, что работает:

<% content_for :page_id do %><%='some-page-id'%><% end %> 
5

Не используйте дополнительные разделители Еврорадио устанавливать контент

<% content_for(:page_id) { "thepageid" } %> 

Вы можете пойти дальше и определить вспомогательный метод

# in app/helpers/application_helper.rb 
def page_id(page_id) 
    content_for(:page) { page_id } 
end 

# in your template 
<% page_id("thepageid") %> 
Смежные вопросы