[英]ruby block that starts with <<-HTML
我正在學習如何將Devise flash和錯誤消息與Bootstrap(或者在我的案例中為Materialise)集成。 我在Devise的wiki中找到了一篇關於這個主題的文章( https://github.com/plataformatec/devise/wiki/How-To:-Integrate-I18n-Flash-Messages-with-Devise-and-Bootstrap ),所以我理解如何工作,但有一部分代碼我有理解的問題。
html = <<-HTML
<div class="card-panel red lighten-2">
#{messages}
</div>
HTML
html.html_safe
有人可以解釋<<-HTML
語法嗎? 順便說一句,這是完整的功能,以防您需要上下文
def devise_error_messages!
return '' if resource.errors.empty?
messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
html = <<-HTML
<div class="card-panel red lighten-2">
#{messages}
</div>
HTML
html.html_safe
end
這是一個 紅寶石 聲明字符串的常用方法,在某些情況下非常有用(編輯: http : //en.wikipedia.org/wiki/Here_document,感謝@Stefan):
sql = <<-SQL
SELECT * FROM users
WHERE users.id > 15
ORDER BY users.username;
SQL
ActiveRecord::Base.connection.execute(sql)
更簡單的方法是閱讀這個:
sql = "SELECT * FROM users WHERE users.id > 15 ORDER BY users.username;"
ActiveRecord::Base.connection.execute(sql)
想象一下,在沒有任何換行符的情況下閱讀非常復雜的SQL查詢會很痛苦! (比如手動連接,遞歸,聯合或表格視圖!
它適用於任何類型的單詞:
a_string = <<-WHATEVER
This is a string
with some line-break
to make it more readable
#{and_you_can_use_string_interpolation_too}
WHATEVER
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.