Ruby学习笔记3:Rendering(渲染)和 Redirect(重定向)
1. Rendering
Rendering 是特别要告诉Controller 中的methods,要哪个view file来显示给用户。We can show Views as we wish!
Earlier each one of our Views rendered based on the method specified in the Controller.
If we write the following method:
def render_demo
end
Rails will always look for the render_demo View. But if we write:
def render_demo
  render :home
end
We can tell Rails to render the home View, as long as we have one. Rendering just tells Rails to show the View we specify.
这里这个例子是这样的:
1. 在pages_controller.rb文件中,加入一个method: render_demo
class PagesController < ApplicationController
def home
end
def erb_demo
end
def render_demo
render :home #return home page. but return render_demo.html.erb if without this line
end
end
2. 在routes.rb文件中,加入一个route:pages/render_demo
Rails.application.routes.draw do
get 'pages/home'
root 'pages#home'
get 'pages/erb_demo'
get 'pages/render_demo'
end
3. 在render_demo.html.erb文件中:
<%= "This is the render demo template." %>
4. 最后在浏览器中请求: localhost:8000/pages/render_demo    ,可以得到homepage. 或得到"This is the render
 demo template"
---------------------
2. redirect
另一个控制view内容的方法是redirect, 它跟rendering有点类似,不过它是重新发送一次request到一个different URL. redirect显示了一个不同的view,Redirecting 产生了一个全新的request.
下面就是我们怎么在rails中使用redirect:
1. 在pages_controller.rb文件中,加入一个method: 
def redirect_demo
   redirect_to(:action => 'home')
end
2. 在routes.rb 文件中,加入一个route: pages/redirect_demo
3. 在 redirect_demo.html.erb 文件中,代码如下:
<%= "This is your redirect demo template" %>
----------------------
到这里我们就掌握了利用Rails建立一个基本的Static Web App --- 静态web应用
接下来我们要接触动态应用。加油!
Ruby学习笔记3:Rendering(渲染)和 Redirect(重定向)的更多相关文章
- Ruby学习笔记4: 动态web app的建立
		
Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...
 - ruby学习笔记(1)-puts,p,print的区别
		
ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...
 - ruby 学习笔记 1
		
写ruby blog 系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...
 - angular2 学习笔记 ( server-side rendering, angular universal, 服务端渲染 )
		
更新 : 2018-01-10 大半年过去了依然没有做 server side render 的冲动,但是一直有关注这方便的做法. 今天领悟了一些道理, 这里做个记入. server side re ...
 - ruby学习笔记(2)-chomp,chop的区别
		
还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...
 - vue学习笔记(五)条件渲染和列表渲染
		
前言 在众多的编程语言中,我们的基础语法总是少不了一些专业语法,比如像定义变量,条件语句,for循环,数组,函数等等,vue.js这个优秀的前端框架中也有同样的语法,我们换一个名词,将条件语句改成专业 ...
 - Ruby学习笔记0708
		
#!/usr/bin/env ruby class MegaGreeter attr_accessor :names # 初始化這個物件 def initialize(names = "Wo ...
 - ruby 学习笔记 2 -变量
		
变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...
 - Ruby学习笔记
		
#!/usr/bin/ruby puts "Hello, Ruby, what is your name?" $name = STDIN.gets puts "Hi, I ...
 
随机推荐
- 系统服务和普通FORMS程序共存一体的实现
			
要求:一个EXE,如何将它做成这样的效果:1.双击它时,像一个FORMS程序那样正常显示窗体运行.2.注册成系统服务,每次都可以从service.msc中启动它. 也就是说,没注册之前,它可以当作普通 ...
 - OpenTSDB安装
			
时序数据库 时序数据库全称为时间序列数据库.主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据.时间序列数据主要由电力行业.化工行业.物联网行业等各类 ...
 - 从错误0x80070522,谈强制完整性控制(MIC)。
			
在Windows 7碰到一个奇怪的问题,DE二个盘,NTFS的权限(属性--安全页)一模一样,没有任何区别,但在E盘根目录可以创建文件或文件夹,而在D盘根目录下报错:0x80070522,如果使用应用 ...
 - php大量数据 10M数据从查询到下载 【内存溢出,查询过慢】解决方案
			
功能描述:做数据导出 功能分析:1.采用csv的格式,因为csv的格式比excel小 2. 3W条数据,100个字段需要全部导出 开始 直接查询 //此处使用的laravel框架,具体含义一看就懂 t ...
 - 关于mybatis map foreach遍历
			
map 数据如下 Map<String,List<Long>>. 测试代码如下: public void getByMap(){ Map<String,List<L ...
 - Zabbix 添加主机
			
#1 #2
 - DockerFile服务
			
Dockerfile分为四部分:基础镜像信息.镜像创建者信息.镜像操作指令.容器启动执行指令. 一.Dockerfile的书写规则及指令使用方法 Dockerfile的指令是忽略大小写的,建议使用大写 ...
 - 使用IDEA进行Lua代码调试、自动提示、代码跳转、智能重命名
			
试了几个Lua IDE后,Lua Studio.Lua Glider.VS+babelua插件.Sublime都不是特别满意.直到发现了国人自创的另一个神奇工具:基于IDEA的EmmyLua插件.该插 ...
 - U3D学习005——输入操作
			
1.input管理器 edit-project settings-input 2.getaxis——虚拟轴获取 获取水平和垂直的输入和其他输入(input管理器中定义的) 3.对象的transform ...
 - 通过OTA的方式在局域网分发iOS应用
			
公司的一个项目有Android和iOS的app,Android的下载和安装都很方便,不过iOS有些麻烦,因为项目本身有些限制,主要有以下一些障碍:1.iOS的版本不是通过Appstore分发.2.出于 ...