Dumme Frage, aber ich habe einige anhaltende Verwirrung darüber, was genau eine "Ressource" in Rails ist. Der Begriff wird überall verwendet, aber ich habe das komische Gefühl, dass er eher locker verwendet wird. Es wird im Modell, im Controller und im wahrsten Sinne des Wortes in referenziert routes.rb
.
Ist es die spezifische Route? Ordnet beispielsweise map.resources
die 7 RESTful "Ressourcen" zu. Ein Beispiel für eine Ressource wäre also der Aufruf beispielsweise der index
Aktion des Controllers einer bestimmten Klasse?!?
Ist es ein Verweis auf die gesamte Seite / das Objekt, das abgerufen wird? oder vielleicht enger eine Datenbanktabelle? oder die Zeile wird zurückerhalten?
Ist es etwas anderes?
Wie auch immer, hoffentlich kann mich jemand klarstellen ...
quelle
resources
Routen für Ressourcen definieren, die nicht in der Datenbank enthalten sind! Wenn Sie nicht alle Controller-Aktionen benötigen, an die standardmäßig weitergeleitet wird, verwenden Sie einfachonly:
und geben Sieexcept:
an, welche Sie tatsächlich möchten. Zum Beispielresources :things, only: [:index, :show]
...resources :users
inconfig/routes.rb
nur zum Deklarieren der 7 REST-Routen verwendet?resources :users
die 7 REST-Routen für Sie deklariert, die Sie mit demrails routes
Befehl selbst überprüfen können . Können Sie Ihre Frage klären und erklären, ob Sie andere Routen für:user
...In diesem guten Artikel wird erläutert, wie die meisten Entwickler der Meinung sind, dass "Ressource" mit der Datenbanktabelle synonym ist. Ich denke, das Argument, dass die Zuordnung zur Ressource den Controller dieser Datenbanktabelle (oder mit ActiveResource einer anderen REST-URL) zuordnet ).
Grundsätzlich denke ich, dass eine "Ressource" "persistierte Daten" sind.
map.resources
Ordnet die 7 RESTful- Aktionen einer bestimmten Suite persistenter Daten zu.Aber ich habe nicht zu viel darüber nachgedacht. Gute Frage!
quelle
Ich denke, sie meinen es wahrscheinlich im allgemeinen Web-Sinne, dh Ressource (Web) :
Ich glaube nicht, dass es etwas mit Datenbanktabellen zu tun hat.
quelle
Öffnen Sie Ihren Modellordner, das ist ein Hinweis darauf, über welche Ressourcen Sie verfügen! Beispiel: Benutzer, Bilder, Kommentare ...
quelle
concerns/
und weiterapplication_record.rb
macheapp/models/
(ich bin in Schritt 5). Und ich verstehe nicht, warum das hilfreich wäre.Viele Leute hier sagen, dass Ressourcen auf die Datenbanktabellen verweisen, die Sie haben. Es mag manchmal wahr sein, aber nicht immer. Ich könnte Ihnen viele Beispiele geben, bei denen Sie keine entsprechende Tabelle für eine bestimmte Ressource in Ihrer Datenbank haben. Daher ist es ziemlich falsch, es mit Tabellen zu verknüpfen.
Ich würde eine Ressource als eine Route definieren, die verwandten Anforderungen zugeordnet ist. Anstatt separate Routen für die Aktionen zu deklarieren, die Sie ausführen möchten, können Sie sie einfach mithilfe einer einfallsreichen Route deklarieren. In Rails bietet eine einfallsreiche Route eine Zuordnung zwischen
HTTP requests
undURLs
zucontroller actions
.Sagen Sie also, Sie definieren
resources :users
inconfig/routes.rb
.Sie können jetzt eine Reihe von Helfern für die Controller in Ihrer Anwendung verwenden, z. B.
edit_user_path
welche zurückgegeben werdenusers/edit
.quelle
Hier ist ein guter Link: https://api.rubyonrails.org/v5.2.1/classes/ActionDispatch/Routing/Mapper/Resources.html
Grundsätzlich heißt es: Mit dem Ressourcen-Routing können Sie schnell alle gängigen Routen für einen bestimmten Ressourcen-Controller deklarieren. Anstatt separate Routen für Ihren Index zu deklarieren, Aktionen anzuzeigen, neu zu erstellen, zu bearbeiten, zu erstellen, zu aktualisieren und zu zerstören, deklariert eine einfallsreiche Route sie in einer einzigen Codezeile:
Ressourcen: Fotos
quelle