Tworzenie Prostej Platformy Blogerskiej - Ruter
Przez: Lukasz Muzyka, Z dnia:
Ten tutorial zakłada, że już ukończyłeś:
- Install Ruby on Rails
- Create Ruby on Rails application
- Create Static Pages - without this deploy will not work
- Install Git
- Create Remote Git Repository - optional but recommended
- Deploy application to Heroku
- Manage users with Devise
- How to add Twitter Bootstrap to Ruby on Rails application - Advised
- 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.
Komentarze
Dodaj komentarz
Możesz się zalogować by skomentować
Z dnia: Frank napisał: