Ich versuche, den Controller und Aktion Name basierend auf einem Pfad zu bekommen. Ich habe eine Route:Ruby on Rails: Holen Sie sich den Controller und Aktion Name basierend auf einem Pfad
map.resources :permissions
Ich dachte, dass ich verwenden könnte:
ActionController::Routing::Routes.recognize_path "/permissions/1"
Um einen Hash wie zu erhalten:
{ :controller => "permissions", :action => "show" }
Die tatsächliche Hash, der zurück ist kommt:
{ :controller => "permissions", :action => "1" }
Wie bekomme ich den richtigen Aktionsnamen anstatt nur meine ID? Der Dispatcher muss irgendwie dazu in der Lage sein, oder Rails würde nicht funktionieren, aber ich habe Probleme herauszufinden, wie es durchgeführt wird.
Ich habe routenbasierte Autorisierung anstelle . Im Grunde stecke ich in meiner Datenbank Controller und Aktionen an, die nur bestimmten Benutzern zugänglich sein sollen, und behandle sie als Berechtigungen. Ich bündle diese Berechtigungen in Rollen und weise sie meinen Benutzern zu. Wenn eine geschützte Seite besucht wird, ermittelt ein Vorher-Filter, ob der Benutzer auf dieser Seite sein darf. Das funktioniert großartig (mit den von Ihnen vorgeschlagenen Methoden). Jetzt muss ich einen Link dynamisch anzeigen, abhängig davon, ob der Benutzer die Seite hinter dem Link besuchen darf oder nicht. Ich habe keinen Zugriff auf den Zielcontroller, nur den Pfad. –