Chcę zrobić prosty system autoryzacji, ale mam problemy jak się do tego zabrać.
Plan mam taki, że w ApplicationController dam :before_filter :check_permissions, w tym check_permission wszystko sobie poustawiam,kto i co może, ewentualnie w kontrolerach w ktorych nie potrzebuja autoryzacji ustawie sobie skip_before_filter dla niektorych akcji (typu index dla posts).I tutaj pojawia się moje pytanko, jak się dobrać do tego jaki kontroler i akcja zostały wywołane?
Nie, chodziło mi o to jak w funkcji def check_permissions ustalić pewne działania w zależności od kontrolera/akcji dla której ten before filter był wywołany, ale już wiem, że mam do nich dostęp w params[:controller] i [:action].
Co do drugiego, to takie podstawowe funkcjonalności chciałem napisac od zera, żeby rozumieć jak to działa. Pewnie nie będzie problemu podmienić tego później na coś gotowego.
Rzuć okiem na to: http://railscasts.com/?tag_id=26 Railscasty są tak łopatologicznie wyjaśnione że powinieneś rozumieć dlaczego tak to jest rozwiązane a nie inaczej
[quote=doli]Chcę zrobić prosty system autoryzacji, ale mam problemy jak się do tego zabrać.
Plan mam taki, że w ApplicationController dam :before_filter :check_permissions, w tym check_permission wszystko sobie poustawiam,kto i co może, ewentualnie w kontrolerach w ktorych nie potrzebuja autoryzacji ustawie sobie skip_before_filter dla niektorych akcji (typu index dla posts).I tutaj pojawia się moje pytanko, jak się dobrać do tego jaki kontroler i akcja zostały wywołane?[/quote]
Nie rób tak, że w ApplicationController sprawdzasz jaki kontroler i akcja zostały wywołane. Nie lepiej zaimplementować domyślne działanie w ApplicationController i w kontrolerach, które zmieniają te zachowanie nadpisywać metodę?
A odpowiadając na samo pytanie - jest coś takiego jak “controller_name” lub obiekt “controller” w kontrolerze - nie pamiętam dokładnie, bo rzadko używam, ale sprawdź te 2 rzeczy.