Joakim87 Skrevet 11. februar 2009 Del Skrevet 11. februar 2009 Hei, Jeg skulle gjerne kjørt et before filter på en index action i en controller, øverst i controlleren har jeg definert følgende filter: before_filter has_rights? Videre har jeg definert metoden som følger: def has_rights? #raise "Hello" return false end Men selvom den returnerer false så vil action'en bli kjørt.... Meningen er jo at hvis det blir returnert false i et filter så skal det terminates. Selve metoden blir kalt da jeg kan redirecte osv og dette funker, virker bare som om den ignorerer false Noen som har noen tips? Mvh Joakim T Lenke til kommentar
Dead_Rabbit Skrevet 12. februar 2009 Del Skrevet 12. februar 2009 Meningen med et filter er ikke at actionen ikke skal kjøres hvis filteret returnerer false. Hvis du skal autensiere en bruker med et before_filter, vil vel den enkleste løsningen være å redirecte evt. returnere 401 (Unauthorized) vha. head-funksjonen. Lenke til kommentar
Frank2004 Skrevet 14. februar 2009 Del Skrevet 14. februar 2009 Meningen med et filter er ikke at actionen ikke skal kjøres hvis filteret returnerer false. Men om vi går noen versjoner tilbake, så fungerte filterne slik. Fra http://github.com/rails/rails/blob/1266824...ller/filters.rb # Filters have access to the request, response, and all the instance variables set by other filters in the chain # or by the action (in the case of after filters). Additionally, it's possible for a pre-processing <tt>before_filter</tt> # to halt the processing before the intended action is processed by returning false or performing a redirect or render. # This is especially useful for filters like authentication where you're not interested in allowing the action to be # performed if the proper credentials are not in order. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå