Rails中一些特殊地方

1. -%>
<% 3.times do %>
Ho!<br />
<% end %>
Merry Christmas!
这会生成下列 HTML: Download erb/ex2.op
Ho!<br />
Ho!<br />
Ho!<br />
Merry Christmas!
可以看到,每当Ruby 循环执行一次,其中的文本都会被发送到输出流。
但这里还是有些不大容易理解的事情:这些空行是从哪里来的?它们来自输入文件。认真想想就会发现,模板源文件在第一行与第三行的“%>”标记后面都加上了换行符。模板经过渲染之后,<% 3.times do %>这句代码消失了,换行符却留了下来。循环每执行一次,输出的内容中就增加一个换行符,然后才是“Ho!”这行文字。同样的,<% end %>代码后面的换行符被插入到了最后一个“Ho!”与“Merry Christmas!”之间。
一般而言,这不是什么大问题,因为HTML 并不关心空白字符。不过,如果你用模板机制来创建电子邮件,或是生成的HTML 中包含<pre>代码块,就需要去掉这些空行。为此,只要把html.erb代码的结尾标记由“%>”改为“-%>”即可,这里的减号就会告诉Rails 将紧随其后的换行符全部去掉。如果我们给“3.times”这句代码的结尾标记加上一个减号:
<% 3.times do -%>
Ho!<br />
<% end %>
Merry Christmas!
我们就会得到下列输出9:
Ho!<br />
Ho!<br />
Ho!<br />

2. %{„}这样的符号。这是字符串字面量的另一种写法——就跟双引号一样,不过更适用于长字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值