我正在学习如何将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
精彩评论