aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails_generator/generators/components/scaffold_resource/USAGE
blob: 60e13c770f986683d54d4706da4a8cd8c06ab3a3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Description:
    The scaffold resource generator creates a model, a controller, and a
    set of templates that's ready to use as the starting point for your
    REST-like, resource-oriented application. This basically means that it
    follows a set of conventions to exploit the full set of HTTP verbs
    (GET/POST/PUT/DELETE) and is prepared for multi-client access (like one
    view for HTML, one for an XML API, one for ATOM, etc). Everything comes
    with sample unit and functional tests as well.
    
    The generator takes the name of the model as its first argument. This
    model name is then pluralized to get the controller name. So
    "scaffold_resource post" will generate a Post model and a
    PostsController and will be intended for URLs like /posts and
    /posts/45.
    
    As additional parameters, the generator will take attribute pairs
    described by name and type. These attributes will be used to
    prepopulate the migration to create the table for the model and to give
    you a set of templates for the view. For example, "scaffold_resource
    post title:string created_on:date body:text published:boolean" will
    give you a model with those four attributes, forms to create and edit
    those models from, and an index that'll list them all.
    
    You don't have to think up all attributes up front, but it's a good
    idea of adding just the baseline of what's needed to start really
    working with the resource.
    
    The generator also adds a declaration to your config/routes.rb file
    to hook up the rules that'll point URLs to this new resource. If you 
    create a resource like "scaffold_resource post", it will add
    "map.resources :posts" (notice the plural form) in the routes file, 
    making your new resource accessible from /posts. 

Examples:
    ./script/generate scaffold_resource post # no attributes, view will be anemic
    ./script/generate scaffold_resource post title:string created_on:date body:text published:boolean
    ./script/generate scaffold_resource purchase order_id:integer created_at:datetime amount:decimal