`
cvu
  • 浏览: 105090 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

中文Scaffold和嵌套资源生成器

阅读更多
Rails1.2以后有一个scaffold_resource的generator,那些column在view里都展开了。相比老的scaffold要管用很多(老的scaffold基本上是个花瓶功能),开发可以在这个生成结果的基础上开展。

但如果用rails做中文项目。每次生成scaffold_resource生成代码以后,都要去手工把Edit,View等等链接改成中文,还有那些column的名字,不胜其烦,根本没有享受到新版scaffold的便捷,非常不DRY。现有的本地化解决方案都不能解决这个问题,于是决定自己动手改装出一个中文scaffold。

具体功能与用法,见http://code.google.com/p/l10n-scaffold/wiki/ReadmeCn


另外还碰到开发nested resource不够DRY的问题。如果用scaffold_resource生成第二级资源,要改很多地方。漏改或者错改都浪费了我很多时间。于是在这个插件中集成了一个嵌套资源生成器。目前只支持两级资源。新的生成器可以用来生成第二级资源的整套MVC代码,包括针对第二级资源的功能测试。

第二级资源MVC代码标准来自图书:《Agile Web Development with Rails (2nd Edition)》,功能测试代码参考博文:Testing Nested RESTful Resources in Rails

具体功能与用法,见http://code.google.com/p/l10n-scaffold/wiki/GenerateNestedResourcesCn
分享到:
评论
9 楼 hideto 2007-07-17  
"后续手工操作"都可以让Ruby自动去做啊
8 楼 cvu 2007-07-17  
应该是连mysql的socket出了问题,建议安装all-in-one版本的ruby on rails:windows下的instantrails,或者linux下的rubyworks。
7 楼 vkej 2007-07-16  
请问我这为什么scaffold不能用,运行时出错,提示少了mysql.sokt。是mysql的问题,还是用scaffold需要另外安装其他插件?请高手指导指导啊!谢谢了
6 楼 cvu 2007-06-21  
testt 写道
天哪,还真有人直接用scaffold的呀!脚手架迟早要拆掉的,你装修的好看有啥意义?

脚手架有没有帮助要视情况而定,恰好我的项目可以很大程度上借助scaffold。这是个中文项目,所以就装配了一个中文scaffold,为了DRY。

另外还有个体会,就是rails的generator机制很好。不管什么项目,都会有一些大致相同的代码,尤其在controller和view层。做一个generator可以省很多事儿。我这儿共享的中文scaffold生成的还只是一个毛胚,没什么装修,只是l10n了一下。但如果你的房间都装修得差不多,改装一个装修好的scaffold也不错。就看是平地起楼划算,还是先搭脚手架划算了。
5 楼 testt 2007-06-21  
天哪,还真有人直接用scaffold的呀!脚手架迟早要拆掉的,你装修的好看有啥意义?
4 楼 cvu 2007-06-21  
哦,是介绍里写错了,谢谢提醒。我改正了。

map.resources :posts do |post|
  post.resources :comments
end
里面丢了几个冒号,我也改正了。你说的丢了几个s是不是指post后面的s?加不加都可以的。

再次谢谢xxxss细心发现我的错误。
3 楼 xxxss 2007-06-21  
我的意思就是说你那个生成嵌套资源里面写的都是错的。。
你没看到我的文章里写啊。。。

http://code.google.com/p/l10n-scaffold/wiki/GenerateNestedResourcesCn

2 楼 cvu 2007-06-20  
xxxss 写道

这两行resource的r都丢了

map.resources posts do |post|
  post.resources comments
end


routes.rb里面的这个设置需要手工加上的,后续还需要三个简单的手工动作,在生成嵌套资源里有详细说明。如果还有问题,你可以把你生成的代码发给我看看。

有人使用正确的吗?还是都有问题?在我的项目里用得很好。
1 楼 xxxss 2007-06-19  
大哥,行不行啊,照着你的方法做根本出不了结果,
中文用法介绍那里也全是错误。。
script/generate scaffold_resouce post name:string subject:string body:text
script/generate scaffold_resouce post/comment name:string body:text

这两行resource的r都丢了

map.resources posts do |post|
  post.resources comments
end

这里面丢了好几个s

最后还是不能用
post 的最基本的增删改倒是还有

相关推荐

Global site tag (gtag.js) - Google Analytics