Bagaimana Anda mengomentari html yang dicampur dengan kode ruby?
some text <% ... %> more text <%= ... %>
something else
<% ... %>
Dalam jsp itu sangat sederhana:, <%-- ... --%>
tetapi saya tidak dapat menemukan opsi ringkas apa pun di rel.
Komentar html sederhana <!-- ... -->
tidak berfungsi: kode ruby masih dijalankan dan berteriak kesalahan.
Ada opsi untuk digunakan if false
dengan komentar html, tetapi cukup bertele-tele, belum lagi IDE tidak mendukungnya.
Ada juga opsi yang berasal dari ruby murni, yang secara mengejutkan berfungsi.
<%
=begin %>
... html and ruby code goes here
<%
=end %>
Secara umum baik-baik saja, kecuali bahwa itu bertele-tele, tampak aneh dan tidak ada IDE ruby yang saya tahu mendukungnya (ya, saya suka berkomentar / berkomentar dengan satu penekanan tombol).
Saya penasaran, apakah ada 'resmi' yang melakukan ini di rel?
Terima kasih!
sumber
<%= false %>
tidak akan berhasil. Anda harus mencoba solusi yang disediakan yang akan bekerja<% if false %>
tanpa tanda =<%# if false %>
.Gunakan ini untuk mengomentari baris tunggal:
Untuk beberapa baris,
Apa yang Anda katakan akan berhasil.
sumber
The
=begin
Pendekatan ini karena mengganggu:The
<% if false %>
pendekatan bekerja, tapi itu terlihat aneh dan tidak memberikan orang lain yang melihat kode Anda petunjuk tentang niat Anda.Solusi saya adalah sebagai berikut:
Di
application_helper.rb
, tambahkan metode jadi:Kemudian di template tampilan Anda, Anda dapat mengatakan:
Ini berfungsi karena metode Ruby apa pun dapat mengambil blok, tetapi diam-diam akan mengabaikan blok yang diteruskan jika metode Anda tidak menyertakan file
yield
.sumber
ignore
ataudisable
dan kami mendapatkan solusi semantik sepenuhnya:<% ignore do %>…<% end %>
sumber
Untuk blok komentar di template, editor teks saya (Komodo) menganggap variasi pada rekomendasi @ Garfield ini paling tidak menjengkelkan:
sumber
Untuk mengomentari tag erb gunakan simbol hash komentar ruby sebelum tanda = di tag pembuka
sumber
Karena Anda dapat menggunakan
<% %>
untuk meletakkan blok ruby, itu pasti dapat digunakan untuk memasukkan komentar ke dalamnya.Solusi yang lebih sederhana dan elegan akan terlihat seperti ...
sumber
Setelah = mulai Anda tidak perlu meletakkan%>
sumber
Hanya tambahan dari beberapa jawaban sebelumnya. Saya menemukan solusi = begin / = end paling berguna, tetapi demi keindahan saya menulisnya seperti ini:
Perhatikan bahwa karena semuanya diabaikan hingga
=end
tidak perlu menutup=begin
tag dengan%>
atau membuka=end
tag dengan<%
(yang juga telah ditunjukkan dalam jawaban sebelumnya)Saya menemukan ini sebagai solusi paling elegan untuk sepenuhnya mengatasi blok kode ruby dan html campuran dan membuatnya berwarna abu-abu di editor saya juga, sebagai lawan dari
<% if false %>
solusinya. Satu-satunya kelemahan adalah itu=begin
dan=end
harus ditempatkan di awal baris ..sumber
Gunakan komentar yang disebut HEREDOC
Kelebihan:
Kekurangan:
Kode:
Tag pembuka bisa
atau
Apa pun di sini tidak akan berjalan atau muncul di browser
Tag penutup
ya itu perlu 3 baris 😟. Saya tidak tahu mengapa tag erb pembuka itu penting, tetapi itu penting! (kecuali jika Anda tidak menggunakan tag erb apa pun dalam komentar).
sumber
Anda harus ingat di mana kode dijalankan. Komentar bergaya Ruby berfungsi karena kode Ruby dijalankan di server sebelum disajikan ke browser web. Ini juga menjelaskan mengapa komentar HTML tidak berfungsi — Ruby telah dijalankan.
Bukankah IDE yang Anda gunakan mendukung pembuatan makro khusus untuk mengomentari blok kode?
sumber
Pintasan komentar blokir Sublime Text ctrl+shift+/memperhatikan apakah Anda telah memilih HTML normal atau tag Erb dan meletakkan
<!---
atau<% =begin %>
sesuai.sumber
ctrl+d
untuk memilih banyak awal dari setiap tag Erb<%
di dalam blok dan kemudian tekanctrl+shift+/
, lalu tekan sekali lagi untuk seluruh blok untuk mengomentari HTML.Anda dapat menggunakan <% if false%> dan komentar HTML secara bersamaan:
Manfaatnya adalah:
Kode Ruby tidak dijalankan
Blok yang dikomentari memiliki warna abu-abu di IDE
Niatnya jelas bagi pengembang lain
sumber
Ini adalah satu-satunya yang berhasil untuk saya.
sumber
Saya harap saya baru saja membuat Anda terpana!
sumber
Satu-satunya solusi yang dapat diterima yang pernah saya temukan untuk masalah yang merusak punggung ini adalah dengan menempatkan spasi di dalam "<% =" agar tidak lagi terdaftar sebagai kode ruby, dan kemudian mengomentari seluruh blok dengan komentar html
Seperti ini:
Ya, menambahkan spasi itu mengganggu. Tapi itu yang paling tidak mengganggu dari semua solusi yang pernah saya lihat.
sumber
#
... daripada mengirim ruby ke dalam dokumen.