My favorites | Sign in
Project Logo
                
Search
for
Updated Jun 20, 2007 by caoweiyuan
Labels: Featured
GenerateNestedResourcesCn  
生成嵌套资源

介绍

由于嵌套资源(nested resource)的代码与众不同而富有规律,在这个插件中,除了原来就能生成第一级资源,还为scaffold_resource生成器集成了生成嵌套资源的功能。目前只支持两级资源。新的生成器可以用来生成第二级资源的整套MVC代码,包括针对第二级资源的功能测试。

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

用法

举例:两级资源/posts/1/comments,可以通过以下命令创建:

script/generate scaffold_resource post name:string subject:string body:text
script/generate scaffold_resource post/comment name:string body:text

请注意,comments表中还应该有post_id,但是不用在命令行中指定,生成器会自动加上。

后续手工操作

目前生成器只能做到半自动,还有一些操作需要手工完成,才能完成嵌套资源生成:

  1. 在config/routes.rb文件中,将新生成的map.resources移到第一级资源定义中:
  2. map.resources :posts do |post|
      post.resources :comments
    end
  3. 在第一级资源模型文件app/model/parent.rb中,加入has_many定义:
  4. class Post < ActiveRecord::Base
      has_many :comments
    end
  5. 将第二级资源的index视图文件(app/view/base/index.rhtml)的内容拷贝到第一级资源show视图文件(app/view/parent/show.rhtml)的末尾。

TODO

考虑为这个功能另建一个项目。因为这个生成的代码里面也须本地化,所以目前还是集成在一起。


Sign in to add a comment
Hosted by Google Code