ruby 以 <<-HTML 开头的块
ruby block that starts with <<-HTML
我正在学习如何将 Devise flash 和错误消息与 Bootstrap(或在我的情况下为 Materialize)集成。我在 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
这是声明字符串的 ruby 常用方法,在某些情况下非常有用(编辑: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 查询的痛苦! (例如手动连接、递归、联合或 table(s)!
的视图
它适用于任何类型的词:
a_string = <<-WHATEVER
This is a string
with some line-break
to make it more readable
#{and_you_can_use_string_interpolation_too}
WHATEVER
我正在学习如何将 Devise flash 和错误消息与 Bootstrap(或在我的情况下为 Materialize)集成。我在 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
这是声明字符串的 ruby 常用方法,在某些情况下非常有用(编辑: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 查询的痛苦! (例如手动连接、递归、联合或 table(s)!
的视图它适用于任何类型的词:
a_string = <<-WHATEVER
This is a string
with some line-break
to make it more readable
#{and_you_can_use_string_interpolation_too}
WHATEVER