gpt4 book ai didi

ruby-on-rails - 以 <<-HTML 开头的 ruby​​ block

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:08 25 4
gpt4 key购买 nike

我正在学习如何将 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 查询的痛苦! (例如手动连接、递归、联合或 TableView !


它适用于任何类型的词:

a_string = <<-WHATEVER
This is a string
with some line-break
to make it more readable
#{and_you_can_use_string_interpolation_too}
WHATEVER

关于ruby-on-rails - 以 <<-HTML 开头的 ruby​​ block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29517810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com