22-01-2013, 02:03 PM
Yop,
Question du jour : est-il possible de rendre ce code Dry en jouant avec les routes :
Histoire de contextualiser un peu (même si c'est facilement compréhensible). J'ai une vue dédiée à ma page d'inscription, lorsque l'utilisateur soumet le formulaire, il est envoyé vers users#create qui sauve le nouvel utilisateur si il n'y a pas d'erreurs de validation. Dans le cas contraire, je renvoie l'utilisateur vers le formulaire d'inscription.
Je me demandais si il n'était pas possible de faire autrement afin de ne pas avoir à répéter deux fois mes variables d'instance @title et @race (notamment). Y aurait sans doute moyen de jouer en identifiant le type de requête (post ou get).
Question du jour : est-il possible de rendre ce code Dry en jouant avec les routes :
class UsersController < ApplicationController
def new
@title = 'register'
@user = User.new
@user.build_hero
@race = Race::NAMES['klum']
end
def create
@user = User.new(params[:user])
if @user.save
render 'home/index'
else
@title = 'register'
@race = Race::NAMES[params[:user][:hero_attributes][:nation]]
@race = Race::NAMES['klum'] if @race.empty?
render 'new'
end
end
Histoire de contextualiser un peu (même si c'est facilement compréhensible). J'ai une vue dédiée à ma page d'inscription, lorsque l'utilisateur soumet le formulaire, il est envoyé vers users#create qui sauve le nouvel utilisateur si il n'y a pas d'erreurs de validation. Dans le cas contraire, je renvoie l'utilisateur vers le formulaire d'inscription.
Je me demandais si il n'était pas possible de faire autrement afin de ne pas avoir à répéter deux fois mes variables d'instance @title et @race (notamment). Y aurait sans doute moyen de jouer en identifiant le type de requête (post ou get).