rails模块学习之Controller

本文介绍了Rails中Controller的作用和基本结构,强调了ApplicationController的角色。详细讲解了控制器中的关键对象,如request、params、cookies、response、session和flash,以及它们的用途和常用方法。此外,还探讨了控制器的响应、重定向、过滤器及其用法。
摘要由CSDN通过智能技术生成

控制器简单介绍

一个简单的控制器中的例子

Ruby代码   收藏代码
  1. class SimpleController < ApplicationController  
  2.   def index  
  3.   end  
  4. end  

 

 可以看出,我们自己建立的控制器默认继承ApplicationController类。那ApplicationController类到底有什么作用呢

Ruby代码   收藏代码
  1. # Filters added to this controller apply to all controllers in the application.  
  2. # Likewise, all the methods added will be available for all controllers.  
  3.   
  4. class ApplicationController < ActionController::Base  
  5.   helper :all # include all helpers, all the time  
  6.   protect_from_forgery # See ActionController::RequestForgeryProtection for details  
  7.   # Scrub sensitive parameters from your log  
  8.   # filter_parameter_logging :password  
  9. end  

 

从上面的注释得知ApplicationController总是会包含所有的heipers以及对伪造表单的保护,在此类中定义的方法可以被所有的控制器访问同时在此添加过滤器将会应用于所有的孔控制器。

 

回到开头的例子

这里定义了一个方法index,这是一个空动作。里面没有包含任何指定的东西,它的默认视图为views/simple/index.rhtml,尽管我没有定义render :action => "index"。这就是Rails的约定优于配置。

甚至可以把index方法也省略掉,如

Ruby代码   收藏代码
  1. class SimpleController < ApplicationController  
  2. end  

这样仍然能正确渲染视图index.rhtml,但这貌似也没什么意义。

 

控制器中的对象简介

控制器为执行实际操作的action和视图提供了一个上下文的环境,这个环境包括一个实用的对象,如request,params,cookies,response,session,flash,headers。

request介绍

request为访问的请求对象,包含一些请求相关的环境变量,部分方法如下

remote_ip;返回远程IP地址,如客户端有代理,则可能返回多个IP地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值