Ruby on Rails,通过实例变量从Controller向View传递数据
来源:互联网 发布:c语言怎么读出文件内容 编辑:程序博客网 时间:2024/05/06 15:42
http://blog.csdn.net/abbuggy/article/details/7627460
Controller是MVC框架的核心,从名字就可以看出Controller存在的意义就是要“控制”,这里的“控制”有两个含义。
第一是要控制页面的流转也就是决定调用哪个合适的View来展示数据,在《Ruby on Rails,在Controller中指定渲染的Templates》和《Ruby on Rails,在Controller中指定页面重定向》中有涉及到页面流转的两种具体处理方式。
第二点是获取以及组织数据,这些数据即是准备要推送给View的数据。Controller与View之间的关系有点像乐手和乐器之间的关系,乐手(Controller)根据演奏的需要选择拿起哪一样乐器(View);这件乐器其实自己什么都不知道,能够做的就是当接受到乐手的指令后发出相应的声音。
在《Ruby on Rails,利用View Templates生成动态页面》我们知道如何向Templates中嵌入Ruby脚本及在脚本中定义变量。但是在脚本中定义的变量都是局部变量,是无法与Controller进行交互的,我们需要使用实例变量使得数据在View与Controller之间进行传递。
在Ruby中用类似于variable的名字来定义局部变量,实例变量使用类似于@instance_variable来命名,前面增加一个@符号。实例变量属于某一个对象的实例,在这里Controller是一个对象。当我们准备显示一个Template时,我们能够访问到调用这个Template的Controller的实例以及其中的实例变量携带的数据,这些数据交给Template用于页面显示。
每当一次请求调用一个Controller时,Rails框架会实例化出一个Controller的实例。这个实例中的实例变量的值需要在返回之前被设置成我们想要的值以便推送给Templates。
在名为Demo的Controller中的hello Action中定义一个名为name的实例变量并将其赋值。
class DemoController < ApplicationController def hello @name="abbuggy" end end
在名为hello的Template中取得name的值将其显示在页面上。请注意name是定义的一个局部变量,@name是与Controller对应的实例变量。
<h1>Demo#hello</h1><p>Hello Page!</p><% name=@name %><%= "Hello "+name+" !" %><% for i in 0..name.length do %><br/><%= name[i] %><% end %><p>Find me in app/views/demo/hello.html.erb</p>
显示在页面上的字符是从Controller中传递过来的。
http://blog.csdn.net/abbuggy/article/details/7627460
- Ruby on Rails,通过实例变量从Controller向View传递数据
- Ruby on Rails,通过实例变量从Controller向View传递数据
- Ruby on Rails,通过页面链接向Controller中传递参数,附赠调试技巧
- Ruby on Rails(ROR) 小结(一) 绑定controller and view
- ruby on rails 通过链接跳转传递参数
- Ruby On Rails--Action Controller(控制器)
- MVC数据从Controller传递到View之ViewData
- MVC数据从Controller传递到View之ViewModel
- MVC数据从Controller传递到View之ViewData & ViewModel
- Controller向View传输数据
- Ruby On Rails的一个简单实例
- [备忘]Ruby on Rails Send Mail实例
- Ruby on Rails,从这里开始
- Ruby on Rails,从这边开始
- Ruby on Rails,在Controller中指定渲染的Templates
- Ruby on Rails,在Controller中指定页面重定向
- Ruby on rails controller 的7个标准action
- [Ruby On Rails] Action Controller - 控制HTTP 流程
- SNIFFER帮助理解NAT(WIN2000)
- sniffer帮助理解子网掩码、网关与ARP协议的作用
- 笔记:Gof设计模式--Template Method
- 经典C++问题
- 进出登记
- Ruby on Rails,通过实例变量从Controller向View传递数据
- symbian视频编程资料汇总
- struts2 标签完成分页,类似百度,显示页签列表
- spring mvc 配置模版
- Symbian S60平台如何进行单元测试
- Red Hat Linux主要运行级别
- 第五周实验报告4
- 字段初始值设定项无法引用非静态字段、方法或属性的问题
- Qt-4.6动画Animation快速入门三字决