📜  Ruby on Rails 2.1-布局(1)

📅  最后修改于: 2023-12-03 14:47:08.641000             🧑  作者: Mango

Ruby on Rails 2.1-布局

介绍

在 Ruby on Rails 开发中,布局(Layout)是指用于渲染视图的共享模板。它用于在不同的页面中重复使用相同的样式和结构,提供一致的用户界面体验。布局可以包含通用的 HTML 结构、CSS 样式和 JavaScript 脚本。

在 Ruby on Rails 2.1 中,布局的使用得到了进一步的优化和改进。本文将介绍如何使用布局来创建统一的应用程序界面。

创建布局

在 Rails 2.1 及更高版本中,布局位于 app/views/layouts 目录下。我们可以通过创建一个名为 application.html.erb 的文件来定义默认的布局模板。

<!DOCTYPE html>
<html>
<head>
  <title>MyApp</title>
  <%= stylesheet_link_tag    'application', media: 'all' %>
  <%= javascript_include_tag 'application' %>
  <%= csrf_meta_tags %>
</head>
<body>
  <%= yield %>
</body>
</html>

以上代码片段中,使用了 ERB(Embedded Ruby)语法,<%= yield %> 用于表示视图文件的内容将会被嵌入到该位置。

使用布局

要使用布局,我们需要在控制器中指定所使用的布局模板。可以在控制器类中使用 layout 方法来设置布局。

class HomeController < ApplicationController
  layout 'application'

  def index
    # 针对 index 页面的逻辑处理
  end
end

在上述示例中,layout 'application' 表示 HomeController 使用 application.html.erb 布局模板。

如果某个控制器的所有动作都使用相同的布局,可以将 layout 方法放在控制器类的顶部,设定全局的默认布局。

class ApplicationController < ActionController::Base
  layout 'application'
end
自定义布局

除了默认布局外,还可以为特定的动作或控制器定义自定义的布局。

class ProductsController < ApplicationController
  layout 'product', only: [:show, :edit]

  def index
    # 展示所有产品
  end

  def show
    # 展示单个产品
  end

  def edit
    # 编辑产品
  end
end

在上面的示例中,index 方法将默认使用全局的默认布局,而 showedit 方法则会使用名为 product.html.erb 的自定义布局。

总结

布局在 Ruby on Rails 中扮演了重要的角色,它能为应用程序提供统一的外观和用户体验。通过创建和使用布局,我们可以避免在每个视图中重复编写相同的 HTML、CSS 和 JavaScript 代码。

以上是关于 Ruby on Rails 2.1 中布局的简介和基本用法。希望能帮助你更好地理解和使用布局功能。