Nociones básicas de rails

categorias: rails

tags: rails

Generar app

Crear una app en un directorio

$ # => rails new <app_name>
$ rails new Blog

Opciones

Si tenemos varias versiones de rails instaladas y queremos utilizar una versión que no sea la ultima (la por defecto) hay que indicar la versión entre underlines

$ rails _4.1.8_ new Blog

Crear en el directorio actual

$ rails new . 

Ahora para arrancarlo solo tenemos que ejecutar

# => rails s|server
$ rails server 
=> Booting WEBrick
=> Rails 4.2.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-03-24 23:27:58] INFO  WEBrick 1.3.1
[2015-03-24 23:27:58] INFO  ruby 2.2.1 (2015-02-26) [x86_64-darwin14]
[2015-03-24 23:27:58] INFO  WEBrick::HTTPServer#start: pid=1589 port=3000

Generar codigo

Si queremos generar codigo, podemos usar la opción generate (g) de rails

# => rails g scaffold <modelo> <campo1>:(string|integer|boolean|references) campo2 ... campoN [opciones]
$ rails g scaffold Post title description year:integer
     invoke  active_record
      create    db/migrate/20150324224320_create_posts.rb
      create    app/models/post.rb
      invoke    test_unit
      create      test/models/post_test.rb
      create      test/fixtures/posts.yml
      invoke  resource_route
       route    resources :posts
      invoke  scaffold_controller
      create    app/controllers/posts_controller.rb
      invoke    erb
      create      app/views/posts
      create      app/views/posts/index.html.erb
      create      app/views/posts/edit.html.erb
      create      app/views/posts/show.html.erb
      create      app/views/posts/new.html.erb
      create      app/views/posts/_form.html.erb
      invoke    test_unit
      create      test/controllers/posts_controller_test.rb
      invoke    helper
      create      app/helpers/posts_helper.rb
      invoke      test_unit
      invoke    jbuilder
      create      app/views/posts/index.json.jbuilder
      create      app/views/posts/show.json.jbuilder
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/posts.coffee
      invoke    scss
      create      app/assets/stylesheets/posts.scss
      invoke  scss
      create    app/assets/stylesheets/scaffolds.scss

Opciones

Si queremos recrear las BB.DD.

$ rake db:create

Para ejecutar los scripts de migracion que recrean los models

$ rake db:migrate

Si queremos inicializar la app con datos, podemos introducirlos en el seed.rb y se ejecutaran con:

$ rake db:seed

el db:setup ejecuta en schema.rb y el seed.rb, pero si se cambia los archivos de migrate no se actualiza el schema.rb automaticamente (no se cuando)

Para borrar lo generado con un scaffold p.e.

$ rails d scaffold Post