diff options
Diffstat (limited to 'railties/guides')
-rw-r--r-- | railties/guides/source/getting_started.textile | 8 | ||||
-rw-r--r-- | railties/guides/source/routing.textile | 24 |
2 files changed, 24 insertions, 8 deletions
diff --git a/railties/guides/source/getting_started.textile b/railties/guides/source/getting_started.textile index 270fbe76d2..e68a82e9db 100644 --- a/railties/guides/source/getting_started.textile +++ b/railties/guides/source/getting_started.textile @@ -492,7 +492,7 @@ TIP: Unlike the development web server, the console does not automatically load h4. Listing All Posts -The easiest place to start looking at functionality is with the code that lists all posts. Open the file +app/controllers/posts_controller.rb + and look at the +index+ action: +The easiest place to start looking at functionality is with the code that lists all posts. Open the file +app/controllers/posts_controller.rb+ and look at the +index+ action: <ruby> def index @@ -505,7 +505,7 @@ def index end </ruby> -+Post.all+ calls the +Post+ model to return all of the posts currently in the database. The result of this call is an array containing the posts which has been saved in an instance variable called +@posts+. ++Post.all+ calls the +Post+ model to return all of the posts currently in the database. The result of this call is an array of posts that we store in a instance variable called +@posts+. TIP: For more information on finding records with Active Record, see "Active Record Query Interface":active_record_querying.html. @@ -552,7 +552,7 @@ TIP: For more details on the rendering process, see "Layouts and Rendering in Ra h4. Customizing the Layout -The view is only part of the story of how HTML is displayed in your web browser. Rails also has the concept of +layouts+, which are containers for views. When Rails renders a view to the browser, it does so by putting the view's HTML into a layout's HTML. In previous versions of Rails, the +rails generate scaffold+ command would automatically create a controller specific layout, like +app/views/layouts/posts.html.erb+, for the posts controller. However this has been changed in Rails 3.0. A application specific +layout+ is used for all the controllers and can be found in +app/views/layouts/application.html.erb+. Open this layout in your editor and modify the +body+ tag: +The view is only part of the story of how HTML is displayed in your web browser. Rails also has the concept of +layouts+, which are containers for views. When Rails renders a view to the browser, it does so by putting the view's HTML into a layout's HTML. In previous versions of Rails, the +rails generate scaffold+ command would automatically create a controller specific layout, like +app/views/layouts/posts.html.erb+, for the posts controller. However this has been changed in Rails 3.0. An application specific +layout+ is used for all the controllers and can be found in +app/views/layouts/application.html.erb+. Open this layout in your editor and modify the +body+ tag: <erb> <!DOCTYPE html> @@ -668,7 +668,7 @@ The +create+ action instantiates a new Post object from the data supplied by the If the post was not successfully saved, due to a validation error, then the controller returns the user back to the +new+ action with any error messages so that the user has the chance to fix the error and try again. -The "Post was successfully created" message is stored inside of the Rails +flash+ hash, (usually just called the Flash) so that messages can be carried over to another action, providing the user with useful information on the status of their request. In the case of +create+, the user never actually sees any page rendered during the Post creation process, because it immediately redirects to the new Post as soon Rails saves the record. The Flash carries over a message to the next action, so that when the user is redirected back to the +show+ action, they are presented with a message saying "Post was successfully created." +The "Post was successfully created." message is stored inside of the Rails +flash+ hash, (usually just called _the flash_) so that messages can be carried over to another action, providing the user with useful information on the status of their request. In the case of +create+, the user never actually sees any page rendered during the Post creation process, because it immediately redirects to the new Post as soon Rails saves the record. The Flash carries over a message to the next action, so that when the user is redirected back to the +show+ action, they are presented with a message saying "Post was successfully created." h4. Showing an Individual Post diff --git a/railties/guides/source/routing.textile b/railties/guides/source/routing.textile index d92c66cfd2..7e1b0c2e32 100644 --- a/railties/guides/source/routing.textile +++ b/railties/guides/source/routing.textile @@ -313,7 +313,7 @@ To add a member route, just add a +member+ block into the resource block: <ruby> resources :photos do member do - get :preview + get 'preview' end end </ruby> @@ -324,7 +324,7 @@ Within the block of member routes, each route name specifies the HTTP verb that <ruby> resources :photos do - get :preview, :on => :member + get 'preview', :on => :member end </ruby> @@ -335,7 +335,7 @@ To add a route to the collection: <ruby> resources :photos do collection do - get :search + get 'search' end end </ruby> @@ -346,7 +346,7 @@ Just as with member routes, you can pass +:on+ to a route: <ruby> resources :photos do - get :search, :on => :collection + get 'search', :on => :collection end </ruby> @@ -516,6 +516,22 @@ match 'photos/*other' => 'photos#unknown' This route would match +photos/12+ or +/photos/long/path/to/12+, setting +params[:other]+ to +"12"+ or +"long/path/to/12"+. +Wildcard segments do not need to be last in a route. For example + +<ruby> +match 'books/*section/:title' => 'books#show' +</ruby> + +would match +books/some/section/last-words-a-memoir+ with +params[:section]+ equals +"some/section"+, and +params[:title]+ equals +"last-words-a-memoir"+. + +Techincally a route can have even more than one wildard segment indeed, the matcher assigns segments to parameters in an intuitive way. For instance + +<ruby> +match '*a/foo/*b' => 'test#index' +</ruby> + +would match +zoo/woo/foo/bar/baz+ with +params[:a]+ equals +"zoo/woo"+, and +params[:b]+ equals +"bar/baz"+. + h4. Redirection You can redirect any path to another path using the +redirect+ helper in your router: |