Rails: “nouvelle "ou” modifier" chemin d'accès de l'aide?
Est-il un simple moyen de fournir un lien dans une vue de créer une ressource si elle n'existe pas, ou modifier l'existant sur si il fait?
IE:
User has_one :profile
Actuellement je ferais quelque chose comme...
-if current_user.profile?
= link_to 'Edit Profile', edit_profile_path(current_user.profile)
-else
= link_to 'Create Profile', new_profile_path
C'est ok si c'est le seul moyen, mais j'ai essayé de voir si il y a un "Rails de Façon" de faire quelque chose comme:
= link_to 'Manage Profile', new_or_edit_path(current_user.profile)
Est-il bien propre façon de faire quelque chose comme ça? Quelque chose comme le point de vue de l'équivalent de Model.find_or_create_by_attribute(....)
OriginalL'auteur Andrew | 2011-04-11
Vous devez vous connecter pour publier un commentaire.
Écrire un helper pour encapsuler la partie la plus complexe de la logique, alors que votre point de vue peut être propre.
Maintenant dans vos vues:
OriginalL'auteur Douglas F Shearer
Je suis tombé sur ce même problème, mais a eu beaucoup de modèles que je voulais le faire. Il semblait fastidieux d'avoir à écrire une nouvelle aide pour chacun alors je suis venu avec cette:
Alors vous pouvez simplement appeler
new_or_edit_path :child
pour n'importe quel enfant de la mère modèle.OriginalL'auteur Russell
Une autre façon!
OriginalL'auteur krunal shah
Si vous voulez un moyen générique:
Où
model
est votre variable d'instance de votre vue. Exemple:OriginalL'auteur MurifoX
Essayez ceci:
et avec votre lien comme:
OriginalL'auteur gandham varesh kumar