Novecento Normal
Novecento Demibold
Novecento Bold
Roulé à la main sous les aisselles !
Aujourd’hui on commence sur une notre fraîche en reprenant les mots de l’auteur de la gem : “Les controllers sont le dessous de bras humide de chaque application Rails”.
Bon ça colle bien avec la température du moment et c’est normal, car les variables d’instance ne sont pas censées servir d’interface entre le controller et la vue.
Donc avec cette gem au lieu d’avoir :
class Controller
def new
@person = Person.new(params[:person])
end
def create
@person = Person.new(params[:person])
if @person.save
redirect_to(@person)
else
render :new
end
end
def edit
@person = Person.find(params[:id])
end
def update
@person = Person.find(params[:id])
if @person.update_attributes(params[:person])
redirect_to(@person)
else
render :edit
end
end
end
On aura :
class Controller
expose(:person)
def create
if person.save
redirect_to(person)
else
render :new
end
end
def update
if person.save
redirect_to(person)
else
render :edit
end
end
end
Et hop, un code refactorisé et qui est un peu moins humide ! Bien-sûr cela pourrait aussi fonctionner dans le cas où notre model person dépendrait d’un autre model. Mais ça, c’est une autre histoire :)
Les liens utiles
Sur une idée de @msadouni