Je souhaite afficher un seul formulaire dans lequel chaque utilisateur peut modifier différents champs.Rails: champ modifiable/non modifiable en fonction des autorisations utilisateur
Actuellement, le code ressemble à ceci:
<% if can? :update, item %>
` <%= f.text_field :title %>
<% else %>
<%=h f.object.title %>
<% end %>
je peux emballer cela dans une série d'aides (un pour chaque type de terrain), mais je dois aussi vérifier dans le contrôleur si l'utilisateur peut mettre à jour tous les champs soumis (dans le cas où un utilisateur malveillant tente de soumettre des champs pour lesquels il n'est pas autorisé).
Y a-t-il un motif de nettoyage dans les rails pour ce type de tâche? Idéalement, je voudrais définir ces permissions d'accès dans le modèle et faire en sorte que les changements se propagent au contrôleur et à la vue.
Edit:
En utilisant la balise readonly
est pas une option viable; Il ne prend pas en charge les validations et remplace la logique de vue par beaucoup de CSS. Pas le meilleur compromis.
Il est juste cosmétiques; Cela dépend si vous préférez écrire beaucoup de CSS (pour styliser les commandes en lecture seule comme s'il s'agissait de texte brut) ou si vous préférez une logique supplémentaire dans la vue. Et cela ne résout pas le problème de la validation côté contrôleur. – shmichael