`
cvu
  • 浏览: 108334 次
  • 性别: 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 的最基本的增删改倒是还有

相关推荐

    vuex-cli-scaffold-支架vuex的动作,突变,吸气剂和状态。-Vue.js开发

    不维护vuex-cli-scaffold为Vue.js存储生成模块实体是重复且冗长的。 该软件包可让您创建一个或多个未维护的vuex-cli-scaffold。为您的Vue.js存储生成模块实体是重复且冗长的。 使用此软件包,您可以一次创建一个或多...

    RESTful Rails Development

    - **1.11.2 新的路径和 URL 帮助器参数**:路径和 URL 帮助器也需要相应地调整以支持嵌套资源。 - **1.11.3 添加新迭代**:在处理嵌套资源时,可能需要为每个资源创建和更新单独的动作。 - **1.11.4 编辑现有迭代**...

    RestFul_Rails_Dev_v_0.1

    - **面向 CRUD 的控制器**:控制器的设计更加强调对特定资源的操作,如创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 - **简化系统设计**:RESTful 设计有助于创建更清晰、易于维护的系统结构。 ...

    react-router-scaffold

    在Ruby on Rails中,scaffold是一个命令行工具,它能自动生成控制器、模型、视图和数据库迁移文件,用于快速构建基本的Web界面。在这个项目中,它可能被用来创建一个与React前端交互的后端API。 React Router允许...

    react-scaffold:React + React Router + Flux + Gulp + Webpack样板

    Webpack是一个模块打包器,它将项目中的各种资源(JavaScript、CSS、图片等)视为模块,然后根据依赖关系进行静态分析,生成对应的静态资源。Webpack的强大之处在于其丰富的插件系统,可以进行代码分割、热替换、源...

    scaffold:使用React,SASS,Browserify进行脚手架

    在IT行业中,脚手架(Scaffold)是一种用于快速搭建项目结构的工具,它能帮助开发者按照特定的规范和约定自动生成项目模板,以便于快速启动新项目。在这个场景中,我们讨论的是一个使用React、SASS和Browserify构建...

    RSepc rails 测试框架介绍

    创建测试代码时,当使用 Rails 的 `scaffold` 生成器时,RSpec 会自动生成相应的测试代码到 `spec` 目录下。如果需要为视图、助手等创建测试,可以直接在相应目录下创建 `.spec.rb` 文件。 执行测试用例,只需要在...

    slush-angular-webpack

    有角度的网络包 一个专注于在 Salesforce 环境中部署的 Angular Webpack Scaffold。 默认模板在嵌套指令中包含 ... 然后生成器会要求您输入项目(只会为 SF 项目创建 VisualForce 页面)。 What would you like to n

    Artist-Rails-App:这是我的第一个Rails应用程序,其中我创建了两个脚手架并将它们连接在一起

    这通常通过嵌套资源路由和关联查询来完成。例如,通过`resources :artists do resources :tracks end`在routes.rb中设置嵌套路由,然后在Artist的show视图中使用`@artist.tracks`获取所有关联的Track。 在实际项目...

    First_app:Ruby on rails 教程第一个应用

    6. **控制器与动作**:在`app/controllers/first_apps_controller.rb`中,你会发现如`index`, `new`, `create`, `edit`, `update`, 和 `destroy`等方法,这些都是由`scaffold`生成的,对应于CRUD操作。 7. **视图...

    【Flutter】入门17-DataTable

    接下来,我们创建一个`StatefulWidget``MyHome`,并继承`State`,同时使用`SingleTickerProviderStateMixin`来管理动画控制器: ```dart class MyHome extends StatefulWidget { @override _MyHomeState ...

    theteenmagazine:通过编写博客学习Ruby on Rails

    3. **生成博客应用**:使用Rails的生成器工具,你可以快速创建一个新的博客应用,包括控制器、模型、视图和数据库迁移。例如,`rails generate scaffold Post title:string content:text` 会生成一个包含文章标题和...

    Flutter-ListView-and-GridView

    ListView和GridView本身都是Widget,你可以通过将它们嵌套在其他Widget中,如Scaffold或Container,来构建复杂的应用界面。 在实际开发中,我们通常会为ListView和GridView提供数据源,这可以是List对象、Future...

Global site tag (gtag.js) - Google Analytics