Jak komentujesz html zmieszany z kodem ruby?
some text <% ... %> more text <%= ... %>
something else
<% ... %>
W jsp to naprawdę proste: <%-- ... --%>
ale nie mogę znaleźć żadnej zwięzłej opcji w railsach.
Proste komentarze html <!-- ... -->
nie działają: kod ruby jest nadal wykonywany i generuje błędy.
Jest opcja do używania if false
z komentarzami HTML, ale jest dość rozwlekła, nie wspominając o tym, że IDE jej nie obsługują.
Jest też opcja pochodząca z czystego rubinu, która zaskakująco działa.
<%
=begin %>
... html and ruby code goes here
<%
=end %>
Generalnie jest w porządku, z wyjątkiem tego, że jest rozwlekły, dziwnie wyglądający i żadne z Ruby IDE, które znam, nie obsługuje go (tak, lubię komentować / komentować jednym naciśnięciem klawisza).
Ciekaw jestem, czy jest jakikolwiek „oficjalny” sposób robienia tego w railach?
Dzięki!
źródło
<%= false %>
, nie zadziała. Powinieneś jednak wypróbować podane rozwiązanie, które działałoby<% if false %>
bez znaku =<%# if false %>
.Użyj tego do komentowania pojedynczych linii:
W przypadku wielu wierszy
To, co powiedziałeś, zadziała.
źródło
To
=begin
podejście jest denerwujące, ponieważ:To
<% if false %>
podejście działa, ale wygląda dziwnie i nie daje nikomu, kto spojrzy na Twój kod, podpowiedzi na temat Twoich zamiarów.Moje rozwiązanie jest następujące:
W
application_helper.rb
, dodaj metodę, więc:Następnie w szablonie widoku możesz powiedzieć:
To działa, ponieważ każda metoda Rubiego może przyjąć blok, ale dyskretnie zignoruje przekazany blok, jeśli twoja metoda nie zawiera
yield
.źródło
ignore
lubdisable
i otrzymamy w pełni semantyczne rozwiązanie:<% ignore do %>…<% end %>
źródło
W przypadku komentarzy blokowych w szablonach mój edytor tekstu (Komodo) uważa tę odmianę rekomendacji @ Garfielda za najmniej nieprzyjemną:
źródło
Aby skomentować tagi erb, użyj symbolu hash komentarza ruby przed znakiem = w otwierającym tagu
źródło
Ponieważ możesz użyć
<% %>
do umieszczenia bloku ruby, z pewnością można go użyć do wstawienia do niego komentarzy.Prostsze i eleganckie rozwiązanie wyglądałoby jak ...
źródło
Po = begin nie musisz umieszczać%>
źródło
To tylko dodatek do niektórych poprzednich odpowiedzi. Wydaje mi się, że rozwiązanie = begin / = end jest najbardziej przydatne, ale ze względu na piękno piszę to tak:
Zwróć uwagę, że ponieważ wszystko jest ignorowane do momentu, w którym
=end
nie ma potrzeby zamykania=begin
tagu%>
lub otwierania=end
tagu za pomocą<%
(co również zostało wskazane we wcześniejszej odpowiedzi)Okazało się, że jest to najbardziej eleganckie rozwiązanie, aby całkowicie odkomentować blok mieszanego kodu ruby i html, a także wyszarzać go w moim edytorze, w przeciwieństwie do
<% if false %>
rozwiązania. Jedyną wadą jest to, że=begin
i=end
musi być umieszczony na samym początku linii ..źródło
Użyj komentarza HEREDOC
Plusy:
Cons:
Kod:
Tag otwierający może być
lub
Wszystko tutaj nie będzie działać ani wyświetlać się w przeglądarce
Tag zamykający
tak, muszą to być 3 linie 😟. Nie wiem, dlaczego otwierający tag erb jest ważny, ale tak jest! (chyba że w komentarzu nie użyto żadnych tagów erb).
źródło
Musisz pamiętać, gdzie kod jest wykonywany. Komentarze w stylu Ruby działają, ponieważ kod Ruby jest wykonywany na serwerze, zanim zostanie przesłany do przeglądarki internetowej. To wyjaśnia również, dlaczego komentarze HTML nie działają - Ruby został już wykonany.
Czy IDE, którego używasz, nie obsługuje tworzenia niestandardowych makr do komentowania bloków kodu?
źródło
Skrót do komentarza blokowego Sublime Text ctrl+shift+/informuje, czy wybrałeś normalny znacznik HTML lub Erb i wstawia odpowiednio
<!---
lub<% =begin %>
.źródło
ctrl+d
aby zaznaczyć wiele początków każdego znacznika Erb<%
w bloku, a następnie nacisnąćctrl+shift+/
, a następnie nacisnąć go jeszcze raz, aby cały blok zakomentował kod HTML.Możesz używać jednocześnie komentarzy <% if false%> i HTML:
Korzyści to:
Kod Ruby nie jest wykonywany
Skomentowany blok ma szary kolor w IDE
Zamiar jest oczywisty dla innych programistów
źródło
To jedyny, który działał dla mnie.
źródło
Mam nadzieję, że właśnie rozwaliłem twój umysł!
źródło
Jedynym akceptowalnym rozwiązaniem tego przełomowego problemu, jakie kiedykolwiek znalazłem, było umieszczenie spacji w „<% =”, aby nie był on już rejestrowany jako kod ruby, a następnie zakomentowanie całego bloku za pomocą komentarzy HTML
Lubię to:
Tak, dodawanie spacji jest denerwujące. Ale jest to najmniej irytujące ze wszystkich rozwiązań, jakie dotychczas widziałem.
źródło
#
... zamiast wysyłać ruby w dokumencie.