1.2: CRUD de Boards - wyeworks/rails-workshop-2017-dia-1 GitHub Wiki
CRUD de Boards
El objetivo de esta parte es poder crear nuevos Boards, verlos, editarlos y borrarlos.
1. Scaffold
Corremos el siguiente comando para generar todo lo relacionado con boards.
$ rails generate scaffold board name visibility favorite:boolean
invoke active_record
create db/migrate/20170329050947_create_boards.rb
create app/models/board.rb
invoke test_unit
create test/models/board_test.rb
create test/fixtures/boards.yml
invoke resource_route
route resources :boards
invoke scaffold_controller
create app/controllers/boards_controller.rb
invoke erb
create app/views/boards
...
Si probamos ver el resultado de esa acción en el navegador entrando en http://localhost:3000/boards vemos que nos tira un error!
Esto es porque es necesario crear la tabla boards en la base de datos.
2. Migraciones
Corremos las migraciones pendientes.
$ rails db:migrate
== 20170329050947 CreateBoards: migrating ===============================
-- create_table(:boards)
-> 0.0320s
== 20170329050947 CreateBoards: migrated (0.0322s) ======================
Podemos ir de nuevo a http://localhost:3000/boards y comprobar que, además de que se solucionó el error, tenemos un CRUD mínimo que nos permite crear nuestros primeros boards.
3. Tests
Corremos los tests generados por el scaffold.
$ rails test
Run options: --seed 5939
# Running:
.......
Finished in 16.371755s, 0.4276 runs/s, 0.5497 assertions/s.
7 runs, 9 assertions, 0 failures, 0 errors, 0 skips
4. Rutas
El scaffold nos generó este archivo de rutas, donde están definidas las rutas asociadas a boards.
# config/routes.rb
Rails.application.routes.draw do
resources :boards
end
Vemos las rutas que se generaron, corriendo el siguiente comando:
$ rails routes
Prefix Verb URI Pattern Controller#Action
boards GET /boards(.:format) boards#index
POST /boards(.:format) boards#create
new_board GET /boards/new(.:format) boards#new
edit_board GET /boards/:id/edit(.:format) boards#edit
board GET /boards/:id(.:format) boards#show
PATCH /boards/:id(.:format) boards#update
PUT /boards/:id(.:format) boards#update
DELETE /boards/:id(.:format) boards#destroy
Modificamos el archivo config/routes.rb
para definir una ruta home.
Rails.application.routes.draw do
resources :boards
# <<<<<<<<<
root 'boards#index'
# >>>>>>>>>
end
Ahora podemos ir al browser y ver el resultado de este cambio http://localhost:3000/.
Commit en Git
git add -A
git commit -m "CRUD de Boards"