加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 以<< - HTML开头的ruby块

发布时间:2020-12-17 03:24:29 所属栏目:百科 来源:网络整理
导读:我正在学习如何将Devise flash和错误消息与Bootstrap(或者在我的案例中为Materialise)集成.我在Devise的wiki( https://github.com/plataformatec/devise/wiki/How-To:-Integrate-I18n-Flash-Messages-with-Devise-and-Bootstrap)中找到了一篇关于这个主题的
我正在学习如何将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读