rails new appName
bundle install
rails server
rails console
- Nombre de Modelo -> Singular, primer letra mayuscula
- Nombre de tabla -> Plural, minusculas del nombre de Modelos
- Nombre del archivo de Modelo -> En minusculas pero en singular, articulo.rb
- Nombre de controlador -> Plural del nombre de Modelo, articulos_controller.rb
rails generate migration create_modelPluralName attribute_1:type attribute_2:type2
rails generate migration add_camponuevo_to_nombretabla
-
En el archivo de migración generado se agrega el/los campos definiendo la tabla, el nombre del campo y el tipo de dato:
def change add_column :table, :column1, :type add_column :table, :column2, :type add_column :table, :created_at, :datetime add_column :table, :updated_at, :datatime end
rake db:migrate
rake db:rollback
1.
var = Model.new
var.attribute_1 = "valor1"
var.attribute_2 = "valor2"
var.save
2.
var = Model.new(attribute_1: "valor1", attribute_2: "valor2")
var.save
3.
Model.create(attribute_1: "valor1", attribute_2: "valor2")
var = Model.find(id)
var.attribute_1 = "Nuevo valor"
var.attribute_2 = "Nuevo valor"
var.save
var.destroy
class ModelName < ActiveRecord::Base
validates :attribute_1, presence: true, length: { minimum: 3, maximum: 50 }
validates :attribute_2, presence: true, length: { minimum: 3, maximum: 50 }
end
-
Ver representción del objeto
var.errors
-
Validar si hay errores. Boolean
var.errors.any?
-
Obtener todos los mensajes de error
var.errors.full_messages
Model.all
rails generate scaffold ModelName attribute:type attribute_2:type2
routes.rb
resources :modelPluralName
modelsController
def index | new | create | edit | update | show | destroy
#Index
@variables = Model.all
#New
@variable = Model.new
#Create
@variable = Model.new(model_params)
@variable.save
redirect_to model_path(@variable)
#Edit
@variable = Model.find(params[:id])
#Update
@variable = Model.find(params[:id])
@variable.update(model_params)
redirect_to model_path(@variable)
#Show
@variable = Model.find(params[:id])
end
private
def model_params
params.require(:model).permit(:attribute1, :atribute2)
end
vista/new.html.erb | vista/edit.html.erb
#Si hay errores los itera
<% if @variable.errors.any? %>
<h3>The following errors prevented the article from getting created</h3>
<ul>
<% @variable.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
#Formulario con inputs mapeados del modelo
<%= form_for @variable do |f| %>
<p>
<%= f.label :title %><br/>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :description %><br/>
<%= f.text_area :description %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>