2016-07-01 9 views
0

In meiner Schiene App habe ich user has_one :profile und profile belongs_to :user Zuordnung. Wenn ein Benutzer bereits ein Profil hat und die Seite user/:user_id/profile/new aufruft und ein neues Profil abgibt, wird das alte Profil aktualisiert.Rails has_one Verknüpfung verhindert das Hinzufügen neuer Kind-Objekt, wenn vorhanden

Ich kann dies mit Pandit (Authorization Gem) verhindern und autorisieren nur Benutzer, die kein Profil haben, um neue auszulösen und Aktionen zu erstellen. Ich habe mich gefragt, ob die Rail-Konvention in diesem Fall war. Ich denke, es sollte eine einfachere Lösung geben.

Antwort

1

Dies ist Schienen Konvention. Wie Sie das gleiche Formular beim Erstellen und Aktualisieren öffnen, und wenn profile.id ist nil Formularaktion wird Profile#create gehen und wenn profile.id ist nicht nil, wird es Profile#update Aktion mit dem profile.id in den Parametern gehen.

+0

Dank Nermin, dann werde ich Pandit verwenden. –