Ich habe ein User-Modell, das in meinem Kopf, zwei Show Aktionen hat:Wie sollte ich die Controller für ein Modell mit unterschiedlichen Ansichten für die gleiche (n) Aktion (en) organisieren?
- A 'Show' durchgeführt auf einen eigenen Rekord des Benutzers (ihr privates Profil sehen)
- A 'Show' durchgeführt andere Benutzerdatensätze (ihr öffentliches Profil zu sehen)
ich habe gedacht, mehrere verschiedene Möglichkeiten, wie ich könnte organisieren und diese Funktionalität implementieren, aber ich bin gespannt, was die ‚Rails Way‘ ist, es zu tun.
Die URLs sollten eindeutig sein (domain.com/account vs. domain.com/profile/someuser), was mich natürlich dazu bringt, mehrere Ansichten zu haben, um die unterschiedlichen Standpunkte dieser Aktion darzustellen.
Option 1 wäre, zwei Controller mit einer anderen Show-Aktion und View zu erstellen, um die Anfragen zu bedienen.
Option zwei wäre, beide Aktionen in einem Controller mit Aktionsnamen zu platzieren, die im Wesentlichen Duplikate sind (oder erzwungene Nichtduplikate wie "show" vs. "show_public").
Option drei wäre ein Controller und eine Aktion zu verwenden, die jede Anfrage auf einige einzigartige Bit Daten bedingt basierte Prozesse: die Strecke von dem es hieß, ob params [: id] ausgefüllt ist, usw.
Was ist der 'Rails Way', um dies zu tun?
Ich weiß nicht, dass es einen 'Rails Way' gibt, um Ihre Controller zu organisieren. Ich würde alles tun, was Ihrer Bewerbung am natürlichsten erscheint. Letztendlich ist es am besten, wenn Sie sich entscheiden, umfassende Tests zu haben, damit Sie zu einem späteren Zeitpunkt wechseln können, ohne Angst haben zu müssen, etwas zu kaputt zu machen. – Caps