锁定老帖子 主题:美就是生产力(Rails美学宣言阐释)
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-04-25
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-04-25
|
|
返回顶楼 | |
发表时间:2006-04-25
Account.transaction(david, mary) do david.withdrawal(100) mary.deposit(100) end 代码本身的含义应该不需要做任何解释,Davie和Mary的帐户在这个事务中进行处理,做什么呢,你出一百,我进100 首先,这是一个事务,但是为什么不写成 Account.transaction do david.withdrawal(100) mary.deposit(100) end 不是更清楚吗 但是,如果这个事务没办法完成,譬如david帐户的钱不够了,那么这个事务需要在数据库中整个回滚,数据库OK了,但是david在内存中的模型已经被修改,我们如何保护david和mary的内存模型和数据库保持一致呢,那就是最初的代码了。 |
|
返回顶楼 | |
发表时间:2006-04-25
class Account < ActiveRecord::Base validates_presence_of :subdomain,:name, :email_address, :password validates_uniqueness_of :subdomain validates_acceptance_of :term_of_service, : on=>:create validates_confirmation_of :password, :email_address, : on=>:create end 我不知道没用过rails的人会怎么理解,OK 我来读一遍,Account是一个ActiveRecord,但是你要小心了: 1。 subdomain,name,email_address,password必须存在(有值) 2。subdomain要唯一的哦 3。你必须接受term of service,当然不是每次你都要这么麻烦,只是在建账户的时候 4。两次密码必须一样,为了防止你的email地址不对,也确认一下吧 我相信读了这一遍以后,你马上就明白了(可能我没读你就明白了) 一个经常在程序里面碰到的问题是验证,而模型层的验证是必须有的,你碰到过比这更简洁、完美的验证机制吗,我只知道是麻球一样的XML,看起来无比强大的表达式和验证框架。。。 |
|
返回顶楼 | |
发表时间:2006-04-25
potian 写道 class Account < ActiveRecord::Base validates_presence_of :subdomain,:name, :email_address, :password validates_uniqueness_of :subdomain validates_acceptance_of :term_of_service, :on=>:create validates_confirmation_of :password, :email_address, :on=>:create end 我不知道没用过rails的人会怎么理解,OK 我来读一遍,Account是一个ActiveRecord,但是你要小心了: 1。 subdomain,name,email_address,password必须存在(有值) 2。subdomain要唯一的哦 3。你必须接受term of service,当然不是每次你都要这么麻烦,只是在建账户的时候 4。两次密码必须一样,为了防止你的email地址不对,也确认一下吧 我相信读了这一遍以后,你马上就明白了(可能我没读你就明白了) 一个经常在程序里面碰到的问题是验证,而模型层的验证是必须有的,你碰到过比这更简洁、完美的验证机制吗,我只知道是麻球一样的XML,看起来无比强大的表达式和验证框架。。。 这样的强验证/约束模型确实是渴望的。 一个问题: 这样的验证要跟数据库作频繁的SQL嘛? 比如保证唯一。 |
|
返回顶楼 | |
发表时间:2006-04-25
class Project < ActiveRecord::Base belongs_to :portfolio has_one :project_manager has_many :milestones has_and_belongs_to_many :categories end 到这里,我觉得自己真是多此一举,还需要读吗,项目有一个项目经理,有很多里程碑,有并且属于很多分类,你还愿意用一个啥子XML文件,或者在代码里面稀里哗啦这边一个@,那边一个@吗。 不过且慢,portfolio 是单数,milestones ,categories 我们猜得到,就是Milestone,Category的复数了,但project_manager是什么东东,应该是个人,还有,如果project被删除,这个项目的里程碑还有意义吗,OK class Project < ActiveRecord::Base belongs_to :portfolio has_one :project_manager, :class_name => "Person" has_many :milestones, :dependent => true has_and_belongs_to_many :categories end |
|
返回顶楼 | |
发表时间:2006-04-25
我的建议是你看RubyForRails
|
|
返回顶楼 | |
发表时间:2006-04-25
firebody 写道 potian 写道 class Account < ActiveRecord::Base validates_presence_of :subdomain,:name, :email_address, :password validates_uniqueness_of :subdomain validates_acceptance_of :term_of_service, :on=>:create validates_confirmation_of :password, :email_address, :on=>:create end 我不知道没用过rails的人会怎么理解,OK 我来读一遍,Account是一个ActiveRecord,但是你要小心了: 1。 subdomain,name,email_address,password必须存在(有值) 2。subdomain要唯一的哦 3。你必须接受term of service,当然不是每次你都要这么麻烦,只是在建账户的时候 4。两次密码必须一样,为了防止你的email地址不对,也确认一下吧 我相信读了这一遍以后,你马上就明白了(可能我没读你就明白了) 一个经常在程序里面碰到的问题是验证,而模型层的验证是必须有的,你碰到过比这更简洁、完美的验证机制吗,我只知道是麻球一样的XML,看起来无比强大的表达式和验证框架。。。 这样的强验证/约束模型确实是渴望的。 一个问题: 这样的验证要跟数据库作频繁的SQL嘛? 比如保证唯一。 该查数据库的时候还是得查呀,我们老早用的BTree数据库,啥DbaseII呀可没这么高级的唯一索引,这个约束,那个约束呀 讲笑话:) 很多时候,仅仅利用数据库本身的机制是不够的,譬如,很难提供好的用户反馈,我的习惯是一定查,在一个事务内部,多执行几句这种不返回大量数据集的语句无关紧要 说老实话,就算作为文档放在那里我也乐意,客户看到更乐意了,敏捷敏捷,交流交流,呵呵 |
|
返回顶楼 | |
发表时间:2006-04-25
|
|
返回顶楼 | |
发表时间:2006-04-25
...
|
|
返回顶楼 | |