推荐答案
在 Ruby on Rails 中使用 ERB 模板非常简单。ERB(Embedded Ruby)是一种将 Ruby 代码嵌入到 HTML 中的模板系统。以下是一个基本的示例:
// www.javascriptcn.com code example <!-- app/views/welcome/index.html.erb --> <h1>Welcome to My App</h1> <p>Current time: <%= Time.now %></p> <% if user_signed_in? %> <p>Welcome back, <%= current_user.name %>!</p> <% else %> <p>Please <%= link_to 'sign in', new_user_session_path %>.</p> <% end %>
在这个示例中:
<%= %>用于输出 Ruby 代码的结果。<% %>用于执行 Ruby 代码但不输出结果。
本题详细解读
1. ERB 模板的基本语法
ERB 模板允许你在 HTML 中嵌入 Ruby 代码。主要有两种标签:
<%= %>:用于输出 Ruby 代码的结果。例如,<%= Time.now %>会输出当前时间。<% %>:用于执行 Ruby 代码但不输出结果。例如,<% if user_signed_in? %>会检查用户是否已登录,但不会输出任何内容。
2. 在 Rails 中使用 ERB
Rails 默认使用 ERB 作为视图模板引擎。当你生成一个控制器时,Rails 会自动创建对应的 ERB 模板文件。例如,生成 WelcomeController 时,Rails 会创建 app/views/welcome/index.html.erb 文件。
3. 常用技巧
- 条件语句:可以使用
if、else、elsif等条件语句来控制内容的显示。 - 循环:可以使用
each、for等循环语句来遍历集合。 - 局部模板:可以使用
render方法来渲染局部模板,例如<%= render 'shared/header' %>。
4. 示例代码解析
<h1>Welcome to My App</h1> <p>Current time: <%= Time.now %></p> <% if user_signed_in? %> <p>Welcome back, <%= current_user.name %>!</p> <% else %> <p>Please <%= link_to 'sign in', new_user_session_path %>.</p> <% end %>
- 第一行输出一个标题。
- 第二行输出当前时间。
- 接下来的代码块检查用户是否已登录。如果已登录,显示欢迎信息;否则,显示登录链接。
通过这种方式,你可以灵活地在 HTML 中嵌入 Ruby 代码,动态生成页面内容。