Kann jemand mir bitte in klaren, einfachen Worten, was das Geschäft mit zugeordneten Ressourcen und benannte Routen in Ruby on Rails erklären?

StackOverflow https://stackoverflow.com/questions/1801756

Frage

Ich habe bei meiner Arbeit an einem Projekt zum ersten Mal Rubin benutze, so dass ich etwas noch lernen die Seile (und lieben jede Minute davon).

Während ich den Punkt der map.connect Funktionen in der route.rb Datei verstehen, ich verstehe nicht die „Ressourcen“ und „benannte Route“ -Funktionen von Rails. Ich habe meine Rails hier buchen und es über mehrere Male gelesen, aber ich weiß es immer noch nicht. Die genannten Routen wir irgendwie bekommen - ich denke, dass sie entweder Regeln sind, entweder explizit definiert ist, oder durch einen Code-Block berechnet, aber die Ressourcen sind ein komplettes Rätsel für mich; das einzige, was ich habe schimmerten rom ihnen ist, dass Sie sie nur, wenn Sie einige der coolen Sachen arbeiten wollen, wie der Lage sein ‚resource_path‘ zu nennen (und seine awesome verwandten Familie von Methoden).

Mein aktuelles Projekt hat:

map.resources :application_forms
map.resources :sections
map.resources :questions
map.resources :seed_answers
map.resources :question_types
map.resources :form_questions
map.resources :rules
map.resources :form_rules

.. aber mein Rails Buch hat dieses ehrfürchtige irgendwie „has_many“ und „nur“ Typ-Hashes und Parameter sie hängen, und ich kann nicht genau arbeiten, wenn soll ich sie nutzen, noch was der Nutzen ist.

Kann jemand gesetzt mich gerade?

War es hilfreich?

Lösung

Named Routen sind genau das; eine Route mit einem Namen angehängt, so dass man leicht darauf verweisen können, wenn Sie eine URL generieren möchten. Unter anderem kann es Unklarheit beseitigen.

Eine Ressource ist im Grunde ein ‚Ding‘, das Sie wollen Routen haben zu manipulieren. Wenn Sie festlegen, dass ‚Abschnitte‘ eine Ressource ist, was Sie tun, zu sagen: „Ich eine Route wollen alle Abschnitte erhalten. Ich eine Route einen neuen Abschnitt hinzufügen möchten. Ich möchte eine Route einen bestehenden Abschnitt bearbeiten. I wollen eine Route einen Abschnitt zu löschen.“ Diese Art von Ding. Diese Strecken weisen auf standardisierte Methode Namen wie index, new, edit, und so weiter. Jede dieser Routen einen Namen zugewiesen, basierend auf, was es ist; so gibt es jetzt eine Route namens 'edit_section'.

Der :has_many Parameter können Sie sagen, dass eine bestimmte Art von Ding Unter Dinge. Zum Beispiel können Sie map.resources :sections, :has_many => [:questions] sagen. Dies bedeutet, dass eine Frage zu einem Abschnitt gehört, und dies wird in der URL und die Route berücksichtigt werden. Sie würden erhalten Urls wie '/sections/27/questions/12' und benannte Routen wie 'section_questions'.

Der :only Parameter sagt „nur Routen für diese Aktionen machen“; Sie könnten es verwenden, wenn Sie nur die Auflistung zulassen wollen, Anzeigen und Hinzufügen von Elementen, nicht oder Löschen bearbeiten.

Andere Tipps

Ehrlich gesagt das Rails Routing-Handbuch gibt Ihnen eine gute Erklärung in etwa als einfachen Text als du kannst bekommen. Genau wissen, dass eine Ressource Route == RESTful Route und Sie sind gut zu gehen.

Wir sind alle mit Verständnis Ressourcen und REST kämpfen, wenn DHH es auf die Schienen im Jahr 2006 an den ersten RailsConf Gemeinschaft eingeführt, so wird es nicht wundern Sie Schwierigkeiten haben, das Konzept zu begreifen.

Ich gebe es viel besser ist und mehr up-to-date Erklärungen der heute Konzepte, aber damals, gleich nach David Keynote, schrieb ich ein Blog-Post , in dem ich, von Diskussion mit anderen Konferenzteilnehmern, versuchte, es zu verstehen und zu erklären. Es könnte Ihnen helfen, da es nicht für übernimmt selbstverständlich, dass Sie alles über REST wissen, wie neuere Artikel zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top