`

rails 中的网页模板(layouts)

 
阅读更多

rails中的网页模板

rails 中的模板都放在app/views/layouts/下。模板后缀是rhtml和erb都可以,但以erb为先,如果已有一个erb后缀的模板,则不再找rhtml。

模板留给子页显示的地方用yield来标识,如<%= yield %>,这样子也内容都会在这个位置显示。

rails自动是按名称来套的。比如如果模板名字叫application.erb,那rails默认把它当作全局模板,站内所有页面都会套用这个模板。

如 果把名字命名成controller的名字,如controller say,如果命名成say,则默认controller say下的所有页面都会应用这个模板。如果定义的模板名称既不是application,又不是controller名称,怎么让某一页面套用这个模板 呢?在controller中定义可以实现。比如模板页叫speak.erb,而想让controller say下所有页是套用,则在say的controller类内声明下:

layout ’speak’

这样rails会在layouts目录寻找这个文件。

如果想用代码控制根据条件使用不同的模板,则可以定义一个方法(名称随意):

def GetLayOut

          if XX return ’say’ else return ’speak’ end

end

然后把类内的声明换成这个方法的名字(注意加冒号):

layout :GetLayout

注意这个不带引号,说明不是字符串了。

如果针对某个action使用特定的模板,则可以在action内声明。比如有个action是/say/langEN,想试用speak,而say下其他页则可能不用,则在action langEN下定义如下:

render:layout => ’speak’

这样就可以使这个action套用speak模板了。

render:layout=>也可以指定方法来使用模板,不过要注意在=>要跟冒号,然后再跟方法名。

注意:layout 和rander:layout=>是两个专有命令,前者在class内声明,后者在action内声明,不可混用。

总结下:

全局模板:名称固定:application
controller模板:名称固定,同controller名称。
自定义模板(名字同controller不同),包括4种定义方法:
3.1. 在controller中定义:
         3.1.1. layout ‘模板名’(注意中间没冒号,模板名两边有引号,表示文件名)
         3.1.2 layout :方法名(注意中间有冒号,方法名两边没引号,标识方法)
3.2 在 action中定义:
          3.2.1. render:layout=> ‘模板名’(注意中间没冒号,模板名两边有引号,表示文件名)
         3.2.2 render:layout=>:方法名(注意中间有冒号,方法名两边没引号,标识方法)
这样细分起来可以算作六种方法可实现。

分享到:
评论

相关推荐

    Ruby on Rails 手順

    在RubyMine中,你可以创建一个新项目,选择“Rails Application”模板。按照向导提示,指定项目名称和位置,RubyMine会自动为你生成基本的Rails项目结构。接着,通过`rails server`命令启动Rails服务器,然后在...

    Ruby_on_Rails快速Web应用开发实战

    在Ruby on Rails中,路由是连接URL到控制器动作的关键部分,开发者可以通过配置routes.rb文件来定义应用程序的URL结构。Rails的资源路由功能能够自动创建多种HTTP动词(如GET、POST、PUT、DELETE)对应的路由,极大...

    Rails_Recipes_with_Source_Code

    14. **邮件发送(Action Mailer)**:Rails内置了Action Mailer用于发送电子邮件,书中可能会涉及邮件模板、配置和测试。 通过阅读《Rails Recipes with Source Code》,开发者可以深入理解Rails的各个层面,并学会...

    应用rails进行敏捷Web开发·第二版源代码

    源码中会包含各种视图模板,展示如何与控制器交互,以及如何利用布局(Layouts)和部分视图(Partials)来组织和重用代码。 控制器是MVC中的胶水,它们接收HTTP请求,处理业务逻辑,并调用模型和视图。源代码会揭示...

    Rails & Twitter Bootstrap

    在Rails项目中,我们还需要了解如何通过erb语法与Bootstrap结合,例如在视图模板中动态渲染数据。例如,用Bootstrap的卡片组件显示数据库中的记录: ```erb &lt;h5 class="card-title"&gt;&lt;%= @product.name %&gt; ...

    rails-chm-2-0-2.rar

    Rails鼓励使用ERB(Embedded Ruby)模板来混合HTML和Ruby代码。理解部分视图(partials)、布局(layouts)和辅助方法(helper methods)可以帮助你构建优雅的用户界面。 4. **控制器(Controller)**:控制器处理...

    rails-layouts-and-templates-lab-v-000

    Rails布局和模板实验室 目标 您的任务是建立在线商店! 好的,也许不是整个在线商店,但至少是一些在线商店的布局和控制器。 您不仅将学习如何创建布局以及如何获得使用该布局的操作,而且还将学习如何覆盖默认值并...

    rails-layouts-and-templates-lab-london-web-091619

    Rails布局和模板实验室 目标 您的任务是建立在线商店! 好的,也许不是整个在线商店,但至少是一些在线商店的布局和控制器。 您不仅将学习如何创建布局,以及如何获得使用该布局的动作,而且还将学习如何覆盖默认值...

    rails-layouts-and-templates-lab-london-web-021720

    Rails布局和模板实验室目标您的任务是建立在线商店! 好的,也许不是整个在线商店,但至少是一些在线商店的布局和控制器。 您不仅将学习如何创建布局,以及如何获得使用该布局的动作,而且还将学习如何覆盖默认值并...

    rails-layouts-and-templates-lab-onl01-seng-pt-100619

    Rails布局和模板实验室目标您的任务是建立在线商店! 好的,也许不是整个在线商店,但至少是一些在线商店的布局和控制器。 您不仅将学习如何创建布局,以及如何获得使用该布局的动作,而且还将学习如何覆盖默认值并...

    haml-rails:让您的Gemfile说话

    要使用它,请将以下行添加到您的Gemfile中: gem "haml-rails", "~&gt; 2.0"这样可以确保: 每当您生成资源,视图或邮件时,都会获得Haml模板(而不是ERB) 当您的Rails应用程序加载时,Haml将自动加载并初始化视图...

    rails_sample_app:Ruby on Rails 教程

    Rails中的视图使用ERB(Embedded Ruby)模板,将HTML与Ruby代码混合,用于动态渲染内容。 - **控制器(Controller)**:处理用户请求,协调模型和视图。控制器负责处理数据,调用模型方法,并向视图传递数据。 **3....

    rail on ruby

    - **模板引擎**: Rails 默认使用 ERB(Embedded Ruby)作为模板引擎,但也可以选择其他的模板引擎如 Haml 或 Slim。 - **前端框架**: 可以集成 Bootstrap 或 Tailwind CSS 等前端框架以快速构建美观的界面。 #### ...

    Ruby-premailerrails轻松为邮件添加CSS样式

    在Ruby on Rails开发中,构建美观的邮件模板是提高用户体验的重要环节。`premailer-rails` gem 是一个非常实用的工具,它可以帮助开发者方便地在邮件中应用CSS样式,使得邮件在不同邮件客户端中都能保持良好的显示...

    first_app:Ruby on Rails 教程的第一个应用程序

    在Ruby on Rails教程中,"first_app"是一个基础项目,旨在引导初学者了解Rails框架的基本概念和工作流程。Ruby on Rails(简称Rails)是用Ruby语言编写的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构...

    sample_app:Rails教程第3章

    12. **JavaScript**: 虽然标签中提及JavaScript,但在Rails中,前端通常涉及CoffeeScript或ES6。了解如何在`app/assets/javascripts`目录下组织和使用JavaScript代码。 13. **布局(Layout)**: Rails中的布局定义...

    rubynostrilhos:关于Ruby on Rails的博客(pt-br)

    2. **Rails最佳实践**:通过查看示例代码,学习Rails开发中的最佳实践,如数据库设计、路由设置、控制器逻辑和视图模板。 3. **Jekyll工作原理**:了解如何使用Markdown编写内容,以及如何配置Jekyll生成静态站点。 ...

    ecommerce_site:中间人 ruby​​ 电子商务模板

    在Ruby on Rails中,模板通常包含视图(views)和布局(layouts),用于展示数据并提供用户界面。这个模板可能包含了购物车、产品目录、订单处理、支付集成等电子商务的核心功能。中间人(Middleware)在此处可能被...

    液体导轨:渲染具有布局和部分支持的液体模板

    它还提供了要在液体模板中使用的过滤器,标签,滴剂类。 安装 将此行添加到您的应用程序的Gemfile中: gem 'liquid-rails' 然后执行: $ bundle 或将其自己安装为: $ gem install liquid-rails 用法 为了使用...

Global site tag (gtag.js) - Google Analytics