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"

Siguiente: 1.3. Estilos CSS