rails Pfadhelfer wird im Modell nicht erkannt

7

In meiner Rails-Anwendung habe ich ein Team-Modell. Meine route.rb-Datei für Teams sieht folgendermaßen aus:

%Vor%

In meiner Datei teams_controller.rb funktioniert die Zeile team_path(Team.first.id) , aber der team_path URL-Helfer wird in meinem Model team.rb nicht erkannt. Ich bekomme diese Fehlermeldung:

%Vor%

Ich muss einen Weg finden, wie das Modell den Pfadhelfer team_path erkennt.

    
user3266824 14.02.2015, 22:12
quelle

3 Antworten

12

Sie sollten die url_helpers auf folgende Weise aufrufen können:

%Vor%     
trosborn 14.02.2015, 22:52
quelle
7

Betrachten Sie diese Lösung wie in der Rails-API vorgeschlagen Dokumente für ActionDispatch::Routing::UrlFor :

%Vor%

Bei dem Team Modells aus der Frage, versuchen Sie dies:

%Vor%

Hier ist eine alternative Technik, die ich bevorzuge, da sie dem Modell weniger Methoden hinzufügt.

Vermeiden include und verwende url_helpers vom routes Objekt statt:

%Vor%     
Eliot Sykes 22.04.2017 10:27
quelle
-1

Modelle sollen sich nicht mit Dingen wie Pfaden, Weiterleitungen oder dergleichen befassen. Diese Dinge sind reine Konstruktionen der Ansicht oder des Controllers.

Das Modell sollte genau das sein; ein Modell der Sache, die du erschaffst. Es sollte dieses Ding vollständig beschreiben, es erlauben, Instanzen davon zu finden, Änderungen daran vorzunehmen, Validierungen daran durchzuführen ... Aber dieses Modell würde keine Vorstellung davon haben, welchen Weg man für irgendetwas, sogar für sich selbst, benutzen sollte.

Ein allgemeines Sprichwort in der Rails-Welt besagt, dass Sie es falsch machen, wenn Sie Schwierigkeiten haben, etwas zu tun (wie einen Pfadhelfer aus einem Modell zu nennen). Dies bedeutet, dass selbst wenn etwas möglich ist, wenn es in Rails schwierig ist, es wahrscheinlich nicht der beste Weg ist, es zu tun.

    
David Hoelzer 14.02.2015 22:41
quelle