J'ai un contrôleur de multiples actions qui prennent :année et :mois les attributs de l'URL. J'ai fait une méthode privée check_date à de vérifier la date est valide et de vérifier la date n'est pas dans l'avenir.
def check_date(year, month)
if month < 1 || month > 12 || year < 2000
flash[:notice] = I18n.t 'archive.invalid_date'
redirect_to :action => 'index'
elsif year > Date.today.year || (year == Date.today.year && month > Date.today.month)
flash[:notice] = I18n.t 'archive.no_future'
redirect_to :action => 'month_index',
:year => Date.today.year,
:month => Date.today.month,
:type => params[:type]
end
end
Est-il un des rails de chemin de fin contrôleur de l'exécution après l' redirect_to?
Les moyens que je peux penser sont soit lancer une exception après l'redirect_to ou pour renvoyer une valeur de check_date et vérifier à chaque action, qu'appelle - quelque chose comme
def month_index
year = params[:year].to_i
month = params[:month].to_i
if !check_date(year, month)
return
...
end
Mais je me demande si il y a une belle rails moyen de le faire. J'étais à moitié en espérant que le fait d'avoir appelé redirect_to rails serait reconnaître que je voulais s'arrêter, mais qui ne semble pas se produire.