Как вы прокомментируете html, смешанный с кодом ruby?
some text <% ... %> more text <%= ... %>
something else
<% ... %>
В jsp все очень просто:, <%-- ... --%>
но я не могу найти какой-либо лаконичный вариант в rails.
Простые html-комментарии <!-- ... -->
не работают: код Ruby все еще выполняется и выдает ошибки.
Есть возможность использовать if false
с комментариями html, но она довольно многословна, не говоря уже о том, что IDE не поддерживают ее.
Также есть вариант из чистого рубина, который на удивление работает.
<%
=begin %>
... html and ruby code goes here
<%
=end %>
В целом это нормально, за исключением того, что он многословен, выглядит странно и ни одна из известных мне рубиновых IDE не поддерживает его (да, я люблю комментировать / закомментировать одним нажатием клавиши).
Мне любопытно, есть ли «официальные лица», делающие это в рельсах?
Спасибо!
источник
<%= false %>
это не сработает. Вы должны попробовать предоставленное решение, которое будет работать<% if false %>
без знака =<%# if false %>
.Используйте это для комментирования отдельных строк:
Для нескольких строк
То, что вы сказали, сработает.
источник
=begin
Подход раздражает , потому что:В
<% if false %>
подход работает, но это выглядит странно и не дает кому - либо еще , кто смотрит на свой код подсказку о своих намерениях.Мое решение таково:
В
application_helper.rb
добавьте метод так:Затем в шаблоне представления вы можете сказать:
Это работает, потому что любой метод Ruby может принимать блок, но будет молча игнорировать переданный блок, если ваш метод не включает
yield
.источник
ignore
илиdisable
мы получим полностью семантическое решение:<% ignore do %>…<% end %>
источник
Для блочных комментариев в шаблонах мой текстовый редактор (Komodo) находит этот вариант по рекомендации @Garfield наименее неприятным:
источник
Чтобы закомментировать теги erb, используйте символ решетки комментария ruby перед знаком = в открывающем теге.
источник
Поскольку вы можете использовать
<% %>
для размещения рубинового блока, его, безусловно, можно использовать для добавления в него комментариев.Более простое и элегантное решение выглядело бы так ...
источник
После = begin вам не нужно ставить%>
источник
Просто дополнение к некоторым из предыдущих ответов. Я нашел решение = begin / = end наиболее полезным, но для красоты я пишу его так:
Обратите внимание, что, поскольку все игнорируется до тех
=end
пор, пока нет необходимости закрывать=begin
тег%>
или открывать=end
тег с помощью<%
(что также было указано в более раннем ответе)Я обнаружил, что это наиболее элегантное решение, позволяющее полностью исключить комментарий из блока смешанного кода ruby и html и также выделить его серым цветом в моем редакторе, в отличие от
<% if false %>
решения. Единственный недостаток в том, что=begin
и его=end
нужно ставить в самом начале строки ..источник
Используйте комментарий с именем HEREDOC
Плюсы:
Минусы:
Код:
Открывающий тег может быть
или
Здесь ничего не запускается и не отображается в браузере
Закрывающий тег
да, это должно быть 3 строки 😟. Я не знаю, почему так важен открывающий тег erb, но это так! (если вы не использовали в комментарии какие-либо теги erb).
источник
Вы должны помнить, где выполняется код. Комментарии в стиле Ruby работают, потому что код Ruby выполняется на сервере до того, как он будет передан в веб-браузер. Это также объясняет, почему комментарии HTML не работают - Ruby уже был выполнен.
Разве IDE, которую вы используете, не поддерживает создание пользовательских макросов для комментирования блоков кода?
источник
Блок комментарии ярлык Sublime Text в ctrl+shift+/уведомление , есть ли у вас выбраны обычный HTML или тег Еврорадио пут либо
<!---
или ,<% =begin %>
соответственно.источник
ctrl+d
чтобы выбрать несколько раз начало каждого тега Erb<%
в блоке, а затем нажатьctrl+shift+/
, а затем нажать еще раз, чтобы весь блок закомментировал HTML.Вы можете использовать как <% if false%>, так и комментарии HTML одновременно:
Преимущества:
Код Ruby не выполняется
Прокомментированный блок в IDE имеет серый цвет.
Намерение очевидно для других разработчиков
источник
Это единственное, что у меня сработало.
источник
Надеюсь, я просто поразил вас!
источник
Единственное приемлемое решение, которое я когда-либо нашел для этой непосильной проблемы, заключалось в том, чтобы поместить пробел в "<% =", чтобы он больше не регистрировался как рубиновый код, а затем закомментировал весь блок с помощью html-комментариев.
Как это:
Да, добавление пробелов раздражает. Но это наименее раздражающее из всех решений, которые я когда-либо видел.
источник
#
... вместо того, чтобы отправлять рубин в документ.