Tworzenie Prostej Platformy Blogerskiej - Ruter

Przez:, Z dnia:

Ten tutorial zakłada, że już ukończyłeś:

  1. Install Ruby on Rails
  2. Create Ruby on Rails application
  3. Create Static Pages - without this deploy will not work
  4. Install Git
  5. Create Remote Git Repository - optional but recommended
  6. Deploy application to Heroku
  7. Manage users with Devise
  8. How to add Twitter Bootstrap to Ruby on Rails application - Advised
  9. Creating Simple Blogging Platform - Creating Model

Po pierwsze, chcemy mieć dostęp do postów w przeglądarce przez URL. Na przykład, adres: http://localhost:3000/posts powinien zabrać nas do listy postów znajdujących się w naszej bazie danych i http://localhost:3000/posts/new powinien zabrać nas na stronę z formularzem do tworzenia nowych postów. Rails daje nam super łatwy sposób do tworzenia tych URL-ów i łącznenia ich z "kontrolerem" naszych Postów.

Krok 1: Uruchom Rake Routes

Możemy przglądać obecną listę dostępnych ruterów/URL-ów przez wpisanie w terminalu:

bash

$ rake routes
                  Prefix Verb   URI Pattern                    Controller#Action
        new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
            user_session POST   /users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
           user_password POST   /users/password(.:format)      devise/passwords#create
       new_user_password GET    /users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                         PATCH  /users/password(.:format)      devise/passwords#update
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
       user_registration POST   /users(.:format)               devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                         PATCH  /users(.:format)               devise/registrations#update
                         PUT    /users(.:format)               devise/registrations#update
                         DELETE /users(.:format)               devise/registrations#destroy
                    root GET    /                              static_pages#home

Krok 2: Zmień Rutery

Teraz otwórzmy plik config/routes.rb i dodajmy ruter dla postów. Zrobimy to przy użyciu jednej linijki kodu:

/config/routes.rb

root 'static_pages#home'
devise_for :users

resources :posts

Krok 3: Ponownie odpal Rake Routes

Możemy ponownie uruchomić rake routes i zobaczyć wszystkie nowe rutery:

$ rake routes
                    root GET    /                              static_pages#home
        new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
            user_session POST   /users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
           user_password POST   /users/password(.:format)      devise/passwords#create
       new_user_password GET    /users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                         PATCH  /users/password(.:format)      devise/passwords#update
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
       user_registration POST   /users(.:format)               devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                         PATCH  /users(.:format)               devise/registrations#update
                         PUT    /users(.:format)               devise/registrations#update
                         DELETE /users(.:format)               devise/registrations#destroy
                   posts GET    /posts(.:format)               posts#index
                         POST   /posts(.:format)               posts#create
                new_post GET    /posts/new(.:format)           posts#new
               edit_post GET    /posts/:id/edit(.:format)      posts#edit
                    post GET    /posts/:id(.:format)           posts#show
                         PATCH  /posts/:id(.:format)           posts#update
                         PUT    /posts/:id(.:format)           posts#update
                         DELETE /posts/:id(.:format)           posts#destroy

Właśnie stworzyliśmy 8 nowych ruterów, których będziemy używać do manipulacji naszymi postami:

                   posts GET    /posts(.:format)               posts#index
                         POST   /posts(.:format)               posts#create
                new_post GET    /posts/new(.:format)           posts#new
               edit_post GET    /posts/:id/edit(.:format)      posts#edit
                    post GET    /posts/:id(.:format)           posts#show
                         PATCH  /posts/:id(.:format)           posts#update
                         PUT    /posts/:id(.:format)           posts#update
                         DELETE /posts/:id(.:format)           posts#destroy

Jeżeli spróbujemy użyć któregoś z tych nowych URL-ów, nie będą one działać, ponieważ oczekują one przekierowania do odpowiadającego kontrolera PostsController.

Rails application failing due to absence of controller

Wyświetlanie Postów >>

Musisz się zalogować by móc oznaczyć tutorial jako ukończony żeby śledzić swój postęp



Komentarze

  • Z dnia: Frank napisał:

    Thanks! I find that minor details, like putting the colon in the right place, can really trip me up.

Dodaj komentarz

Możesz się zalogować by skomentować