Erb 语法说明
erb
的特点是除了能用简洁直观的语法生成HTML文件,也能够嵌入 Ruby 代码。
标签
§ 1 执行 Ruby code 且在 HTML 中插入输出結果时使用<%= Ruby code... %>
;整个<%= %>
被取代为code执行的结果;
<b><%= "sarah" %></b>
<h1><%= @user.name %></h1>
<a href="<%= @link %>">click me</a>
<%= rand(3) %>
<%= rand(n) %>
随机生成 0 到 n-1 之间的随机数
<%= rand(3) %>
输出结果可能会是 0 、 1 或 2 。
§ 2 只执行 Ruby code 但不输出结果时使用:<% Ruby code... %>
- 循环
<% @users.each do |user| %>
....
<% end %>
- 条件判断
<% if @user.weight > 50 %>
...
<% else %>
...
<% end %>
- 任何不需要输出的情況
<% user = @users.first %>
<%= user.name %>
§ 3 使用注释时可以使用 #
符号<%# Comment... %>
§ 4 禁止自动转义使用<%% ... %>
;
简单说就是照原样输出内容。原因是HTML中输入
<
,>
...和保留字会让HTML误认为是标签(<h>,``<a>
...引起混乱),因此HTML会自动把这些符号转义为实体(类似于>
,<
的东东),这个语法可以强制不进行转义。
对比看下就明白了:
<%= "<b>haha</b>" %>
# <b>haha</b>
<%%= "<b>haha</b>" %>
# <b>haha</b>
有时会看到标签
<%-
or-%>
or<%=
or-%>
or
<%=-
or%>
,意思是忽略前面和后面的空格和换行符(-
号在前就忽略前面的,在后就忽略后面的,在两端就忽略前后的的空格和换行符), 使输出更紧凑;不过要设置trim mode
。参考:ruby-china讨论帖
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?