1.SHA1加密:
首先,要装载模块:require "digest/sha1"
一段示范加密函数:
def self.encrypted_password(password)
Digest::SHA1.hexdigest(password)
end
2.我们在用户注册时要求用户重复输入两次密码来确认正确性,验证函数可以用:
在model:
attr_accessor :password_confirmation
validates_confirmation_of :password
在页面:
<p>
<label for="user_password_confirmation" >重复密码:</label>
<%= form.password_field :password_confirmation, :size => 40 %>
</p>
3.过去我们一直让rails帮我们自动产生scaffold,如果我们要自己定义该如何?
ruby script/generate controller Login add_user login logout delete_user list_users
此命令将产生login controller以及add_user.rhtml等页面和action函数
4.model对象可以通过调用count函数来统计数目,比如Order.count将返回orders表的记录数
5.比较有趣的,和java中servlet的filter相似的概念,通过过滤器来控制访问权限
比如,我们想判断某个用户是否具有访问某个URL的权限,我们可以写一个函数:
def authorize
unless User.find_by_id(session[:user_id])
flash[:notice] = "Please log in"
redirect_to(:controller => "login" , :action => "login" )
end
end
此段代码的意义很明显,判断用户是否登陆,没登陆就跳转到登陆页面,然后在需要控制访问的controller加入:
before_filter:authorize
如此一来,当访问此controller所拥有的页面之前将进行过滤判断
6.rails中的ORM,比起hibernate,简单多了,真正的描述性语言,比如:
class Order < ActiveRecord::Base
has_many :line_items
end
class LineItem < ActiveRecord::Base
belongs_to :order
end
两个关键字,belong_to和has_many定义了Order与LineItem之间的双向一对多关系,需要配置吗?需要注释吗?都不需要,rails已经帮你搞定一切...不过,你必须在建表的时候定义关联外键,而hibernate则不要求如此.
ActiveRecord的功能相比于hibernate来说还显得弱小,但符合rails的设计原则
![]() |
谢亚龙逼女足姑娘作检讨(图)
“安静”为啥成裁判口头语?
姚明私下发给刘翔的短信
|
![]() |
曝光:姚明小时候与可爱女生合影(图) 组图:隋菲菲私家相册 率性美感领衔女篮 |
![]() |
![]() |
![]() |


档案
日志
相册
视频








评论
想第一时间抢沙发么?