对数据的验证应该放在模型层Model,因为在模型层控制,可以不管是是来自控制器还是其他类型的数据更改请求,都可以被截获并进行验证。
在控制器中使用scaffold :product 可以生成动态脚手架
而是用generate scaffold product admin就生成静态脚手架
product.content_columns 可以返回model的字段list,如同Delphi的TQuery.FieldList
column.human_name 如同delphi的FieldName
truncate(somtetext,80)可以限制显示80个字符,如果超出则是xxxx...
stylesheet_link_tag "scaffold","my_css"
在layout目录放入控制器名.rhtml,该控制器所有请求会调用它,里面当然得有
凡是有修改数据请求的,我们都使用http里post请求来完成,而表单(form)可以默认使用这种形式。所以。。。
button_to可以生成这样的表单,虽然这个表单只有一个button而已。
cookie用来解决让访问者感觉像是有状态(即服务器会记住其操作)的一样,其实每次请求都把之前和当前的数据更改要求记录在本地,同事提交给服务器。于是。。。无状态的服务变成了有状态。
基于以上原因,所以凡事看起来会记录你信息的web网站,都要求你的浏览器设置为允许cookie。
如何记住这些操作?
1.用cookie全部记住你的操作-----这些操作记录在浏览器,即client端。
2.cookie存储网站给你分配的一个唯一id(session_id),然后把操作记录在服务器进程上——即服务器来记录,这种方式必须保证多台服务器的情况下,这些记录能同步,单台服务器可以不考虑这个问题。
3.cookie存储你的session_id,持久化你的操作,比如记录在数据库里,这样也不用考虑多服务器同步问题(即使是数据库集群,同步也不用应用程序来关心)
这个有点象db2的value函数,value(x,y)----如果x is null,则返回y,否则返回x