陪夫人去产检,26周,在三维彩超里看到金贝贝开始双手交叉在胸前,后来开始吃右手手指头,嘿嘿。
注:贝贝是已经确定的小名,男女均适合,就像REST,可以在一个方法里返回多种格式,这取决于客户端请求的格式
测试路由
第二十一章 ActionController和Rails
控制器控制过程,按顺序执行,成功则不进行后续操作
1.与action同名的public方法
2.否则method_missing(),传入action名称作为唯一参数
3.同名视图模板
4.报错Unknow Action
hide_action :check_credit
可以隐藏声明为public的check_credit方法,不被作为action调用
如果出现这种情况,设计是有问题的,应该建个module来包含这种方法
控制器环境
可以使用的环境变量
action_name
cookies
headers
params
request
.domain,
.remote_ip,
.env['HTTP_ACCEPT_LANGUAGE']
.method
.delete?/get?/post?/put?
.xhr?/xml_http_request?
response
session
应答的3种方式
1.视图模板
2.返回字符串
3.不返回任何东西,空方法。通常用于ajax调用
4.其他数据,比如下载
模板的渲染
任何情况下action应该只应答一次(包括代码中4种方法)。
render (:action=>:index)
仅调用index模板,并不执行index这个action方法。因此如果index模板需要某些变量,上述代码之前必须设置这些变量
redirect_to
:action=>"xxx"
:url=>"xxx"
:back
cookie和session
cookie保存短小字符串
session可以保存任何可被序列化的对象
session会给用户生成session_id,并保存在cookie中,键值是_session_id
不要在session中保留这些数据
1.大量数据:用数据库保存它们
2.经常变化的数据:应该用数据库保存,否则session中的数据可能和实际(数据库中)数据不匹配。比如当前用户、统计数据等。
3.关键信息:因为一旦用户删除cookie,session_id就失效了,进而session也失效了。