1

Also habe ich meine erste Webapp in Rails entwickelt und habe mich hauptsächlich auf die Backend-Funktionalität (Modelle) konzentriert. Ich fing an, meine App mit Gerüsten für alle meine Tische zu bauen und modifizierte die Ansichten, damit ich testen konnte, ob meine Methoden, Beziehungen und Modelle so funktionierten, wie ich es beabsichtigte.Best Practice für Aufrufe für Ressourcen

Jetzt, da das Backend fast abgeschlossen ist, habe ich begonnen, am Frontend zu arbeiten. Ich habe das Inspiria-Theme auf wrapbootstrap gekauft und möchte nicht mehr die Scaffold-Route gehen, da ich glaube, dass es eine Menge Zeug gibt, die ich zwischen den Tabellen wiederholen würde. Dinge wie Formulare, Listen, Menüs etc.

Ich brauche Ansichten für Dinge wie Bestellungen, Lieferungen, SKUs, etc. Zwischen diesen Ressourcen werden die Listen und Formulare weitgehend identisch sein, aber natürlich werden die Datensätze und Attribute anders sein sowie einige der Aktionen. Zusätzlich werden einige Listen wie Sendungen wiederholt, eine Listenansicht für alle Sendungen und eine Listenansicht, die die Sendungen für eine bestimmte Bestellung anzeigt.

Ich habe derzeit 11 Tabellen in meiner App, für die ich Ansichten brauche. Wenn ich dem Gerüstweg folge, werde ich mit 55 html-Dateien enden. Ein Gerüst erstellt für jede Ressource:

  • _form
  • bearbeiten
  • Index
  • neue
  • zeigen

Welche Methode sollte ich meine Ansichten in einer Best-Practice-Mode strukturieren?

Vielen Dank im Voraus!

Antwort

1

Die Konvention ist in der Regel wie folgt:

Angenommen, Sie haben ein Objekt namens resource:

- app 
    - views 
    - resources # note plural here 
     - _form.html.erb 
     - new.html.erb 
     - show.html.erb 
     - index.html.erb 
     - edit.html.erb 

Also, wenn Sie mit einem User Modell einen users Tisch hatten:

- app 
    - views 
    - users 
     - _form.html.erb 
     - new.html.erb 
     - show.html.erb 
     - index.html.erb 
     - edit.html.erb 

wenn Sie rendern eine Sammlung partiell (wenn Sie beispielsweise rendern Rendern <% = render @users%> in Ihrem ind ex.html), dann möchten Sie vielleicht auch einen _user.html.erb Teil hinzuzufügen:

- app 
    - views 
    - users 
     - *_user.html.erb* 
     - _form.html.erb 
     - new.html.erb 
     - show.html.erb 
     - index.html.erb 
     - edit.html.erb 

Jedes Benutzerobjekt in @users wird als lokale Variable in die _user.html.erb Teilgeben werden mit dem Namen user.

+0

Danke für Ihre schnelle Antwort. Das ist also ziemlich genau wie die Gerüststruktur. Ich denke, ich muss nur Teilbereiche intelligent erstellen, so dass ich zum Beispiel _form.html.erb und _list.html.erb zwischen all meinen Ressourcen wiederverwenden kann. – stoerebink

Verwandte Themen