Rails es un framework basado en Ruby, para agilizar y optimizar el desarrollo web

Started
Guia español
Foro

Ruby install
git clone https://github.com/postmodern/ruby-install.git cd ruby-install/bin ./ruby-install --update ruby #la ultima version vi ~/.bashrc export PATH="$PATH:/home/fed/.rubies/ruby-3.2.2/bin" . ~/.bashrc gem i rails yum -y install nodejs // Para JavaScript runtime
Cuando clonamos:
bundle gem i las que fallen Actualizamos las versiones de ruby y rails en Gemfile, para que coincidan con las nuestras

Debemos atender a:
ruby --version
sqlite3 --version
gem install rails
Nueva app
rails new app-name
Despliegue
bin/rails server
rails server -e production
Generar controlador
bin/rails generate controller Articles index --skip-routes
Configurar rutas
config/routes.rb
Rails.application.routes.draw do
root "articles#index"
get "/articles", to: "articles#index"
end
Generar modelo
bin/rails generate model Article title:string body:text
Generar modelo, referente a otro
bin/rails generate model Comment commenter:string body:text article:references
Añadir campo a la bd
rails generate migration AddNewValuesToComments star:integer
Eliminar campo de la base de datos
rails generate migration RemoveInitialValuesFromComments star:integer
Migrar modelo hacia la bd, siempre que creemos, modifiquemos, borremos la estructura de bd
bin/rails db:migrate
Consola interactiva Ruby sin acceso a la base de datos del proyecto
bin/rails irb
Consola interactiva Ruby con acceso a bd del proyecto
bin/rails console
Inicializar un objeto nuevo,
article = Article.new(title: "Hello Rails", body: "I am on Rails!")
Grabarlo en la base de datos
article.save
Mostrarlo
article
Mostrar el primer articulo de la bd,
Article.find(1)
Mostrarlos todos
Article.all
Eliminar uno
Article.delete_by(id:1)
Eliminar varios
Comment.delete_by(id:[16..19])
En el controlador, estipulamos lo que mostrara la vista
app/controller/articles_controller.db
def index
  @articles - Article.all
end
La vista
app/views/articles/index.html.erb
Vemos que tiene sintaxis similar a JSP
<% @articles.each do |article| %> <%= article.title %> <% end %>
Bootstrap
En Gemfile

# Booststrap
gem 'bootstrap', '~> 5.3.0.alpha3'
gem 'bootstrap_form'
gem 'jquery-rails'
gem "font-awesome-sass", "~> 6.4.0"
Font Awesome
En app/assets/stylesheets/application.css.scss
@import "bootstrap";
@import "font-awesome";
Podemos generar un campo en cada tabla, para p.e., controlar que una clase sea visible para todo el mundo (public), o solo para el autor (private), lo crearemos como normalmente.