十二 30
2008年十二月30日,星期二,下午 1:01 | 分类:
tech |
给我留言(1 条留言) |
首先祝所有的朋友09年工作学习顺利。祝李猪猪小朋友即将到来的幼儿园生活开心。 刚才看了下respond_to这个方法,想写上一些东西。 最新做的项目,要求松耦合。因为之前2个月一直在做康盛的uchome的项目设计,对这种设计方式有点自己的想法。所以在初级设计这个代号kx2009的Rails项目时,走了些弯路。刚才看到redpond_to的文字,感觉又回到了一个正确使用Rails的方向,就是更加的REST,要web service。 REST的概念在我心里是来做资源管理的,这个资源管理要简单,所以我并不喜欢/users/1/posts/22这种资源嵌套,我更喜欢是/users/1,而他的posts就是/posts/index,/posts/22,足够。 多态。这次用到了很多多态的方法,使得设计上每个部分都很松耦合,能够复用,比如那个photos,就可以给活动,圈子,论坛去承担不同Model的图片上传,显示,管理功能。积分和信誉积分采用了同样的设计,下面的Account就是多态。(不过自动累加上一个Model的total字段稍微麻烦了点,magic有类似counter_cache的功能吗?对belongs_to那方的total字段进行自动加减?) 好了,看看Rdoc的描述。大意是:Rails是一个很好的web-service框架。 Without web-service support, an action which collects the data for displaying a list of people might look something like this: def index @people = Person.find(:all) end Here‘s the same action, with web-service support baked in: def index @people = Person.find(:all) respond_to do |format| format.html format.xml { render ml [...]
(阅读更多精彩内容...)
十二 18
2008年十二月18日,星期四,下午 4:04 | 分类:
tech |
给我留言 |
最近一个月在忙于开发项目,所以没有更新博客。不过开发中还是学到不少东西。 对于一个程序员,阅读是相当有帮助的,读别人的博客,读源码,读经验文章 ,即便读别人的开发代码,都是有帮助的。 本次开发的初始,就是在读别人的开发代码,然后一点点找到思路,继续在原有基础上加强功能。由于上一个版本的代码写的相当有水准,所以对自己的开发也提高不少。 本次开发的项目是一个在线视频教学系统。开发中用到了曾经写过的分页代码和一个rails插件:acts_as_taggable。 下面对这两个部分进行总结。 一、分页 下面的程序在3个项目上使用过。 models/page.rb class Page attr_accessor :pages #分页连接列表,[]类型 attr_accessor :cur #当前页 end helpers/application_helper.rb def howtopage_links(pagecls=nil) #在页面输出分页连接,pagecls:分页实例 if pagecls return pagecls.pages.collect {|t| [if t.to_s == pagecls.cur ""+(t.to_s)+"" else ""+(t.to_s)+"" end] } end end controllers/application.rb def howtopage(totalcount=0, per_page=6) cur_page = params[:page] || 1 #直接从页面取得page变量 x = (cur_page.to_i – 1) * per_page [...]
(阅读更多精彩内容...)
十二 07
2008年十二月7日,星期天,上午 2:02 | 分类:
tech |
给我留言 |
这是个很简单的Rails2.1.2的 find 的应用,来自Rdoc ActiveRecord::Base 一、find :first 和find :all 使用 Model.find_by_user_name ,来简写 Model.find(:first, :conditions=>["user_name=?",user_name]) 使用 Model.find_all_by_user_name ,来简写 Model.find(:all, :conditions=>["user_name=?",user_name]) 这里也可以使用and,比如典型的用户名和密码查询:Person.find_by_user_name_and_password(user_name, password) find也支持带参数的查询,比如Payment.find_all_by_amount(50, rder => “created_on”) 二、find_or_create_by_和find_or_initialize_ find_or_create_by_:当查询的内容不存在时,创建并保存该记录 find_or_initialize_:更上面的相似,只是创建不保存该记录,需要自己再次save 这里也支持参数和代码块,如 User.find_or_create_by_name(‘Bob’, :age => 40) { |u| u.admin = true } 三、find_by_的时候,支持多属性,如 Tag.find_or_create_by_name(:name => “rails”, :creator => current_user) 以上文字来自Rails2.1.2的Rdoc文档ActiveRecord::Base
(阅读更多精彩内容...)
十二 02
2008年十二月2日,星期二,上午 4:04 | 分类:
TextMate |
给我留言 |
选中文字后按 appli + I 是 em 选中文字后按 appli + B 是 strong 选中一行文字后按 shift +ctrl +W 是用一对标签包裹它 选中一行文字后按 ctrl + apple+H 是用 h* 标签包裹它 选中文字后按 ctrl + apple+B 是用块标签包裹它 选中多行文字后按 shift +ctrl + apple+W 是用一组标签包裹各行 选中多行文字后按 ctrl + apple+L 是用列表标签包裹各行 插入一对标签 ctrl + < 插入一个结尾标签 Option + apple + . apple + & 进行URL编码 ctrl [...]
(阅读更多精彩内容...)