Salut à tous, débutant en RoR, je suis sur le chapitre des filtres et ils se passe un truc assez surprenant je vous poste le code et vous explique ce qui se passe, en précisant bien que ça fait une heure que je lis et relis mon code et que c'est exactement ce qu'il y a dans le livre à part le contrôleur qui a un nom différent:
class Testfiltres3Controller < ApplicationController
before_filter :prefiltre1, :prefiltre2, :only=>[:index, :action1]
after_filter :postfiltre1, :postfiltre2, :except=>:index
def initialize
@c = ""
end
#définition des filtres
def prefiltre1
@c += "prefiltre1() "
end
def prefiltre2
@c += "prefiltre2() "
end
def postfiltre1
@c += "postfiltre1() "
end
def postfiltre2
@c += "postfiltre2() "
erase_render_results
render :text=>@c
end
#actions du controleur
def index
@c += "index()"
end
def action1
@c += "action1()"
end
def action2
@c += "action2()"
end
end
Premier problème, aucune action ne lance postfiltre1(), pourtant seul index() est en exception donc logiquement action1() et action2() sont sensées le lancer. Second problème et là je ne comprends vraiment pas, le "render :text=>@c" de postfiltre2() ne fonctionne pas, pour avoir un affichage je suis obligé de mettre un "render :text=>@c" dans action1() et un autre dans action2(), alors que dans l'exemple précédent, ne contenant que deux filtres un pré et un post, le "render :text=>@c" situé dans le postfiltre fonctionnait très bien, y a-t-il un problème pour utiliser plusieurs postfiltres ?
|
il y a 1 jour 19 heures
il y a 6 jours 4 heures
il y a 1 semaine 4 jours
il y a 1 semaine 4 jours
il y a 1 semaine 4 jours
il y a 2 semaines 3 jours
il y a 2 semaines 4 jours
il y a 2 semaines 5 jours
il y a 2 semaines 6 jours
il y a 3 semaines 1 jour