Rails Beaucoup de plusieurs avec itinéraires occasionnels emboîtées
-
22-09-2019 - |
Question
Comme j'apprends plus sur les rails, et en me brisant le design thinking de jours ASP.Net, je considérais un scénario ce matin, mais ne savait pas s'il était possible de le faire.
Les praticiens ont beaucoup de traitements grâce à des services - et vice versa
Dans mon panneau de commande je un espace pour les pratiquants de modifier leurs coordonnées (noms, coordonnées, etc.) et peuvent également choisir leurs traitements via des cases à cocher.
Je voudrais supprimer les cases aux pratiquants _form. Ayant leur propre forme que je pourrais appeler comme ça:
<%= link_to "Edit Treatments", edit_practitioner_treatments(@practitioner) %>
Cependant, d'un point de vue admin je encore besoin d'être en mesure de gérer les traitements sans objet praticien en vue:
<%= link_to "Edit Treatments", edit_treatments(@treatment) %>
qui a également des barrières d'authentification.
- Y at-il une solution plus facile d'extraire des traitements que j'ai oublié?
- Est-il possible d'avoir des routes imbriquées juste de temps en temps?
- Est-ce que j'ai trop coffe ce matin et sont donc actuellement dans un état de folie?
La solution
En général, lorsque l'on considère les fonctions d'administration, qui présentent souvent une toute autre interface pour l'utilisateur avec l'autorisation vérification basée plus sur « sera cette rupture quelque chose » que « devrait vous être permis », il est avantageux de créer une zone d'administration avec des contrôleurs séparés . Par exemple:
map.namespace :admin do |admin|
# Admin::PracticionersController
map.resources :practicioners
# Admin::TreatmentsController
map.resources :treatments
end
map.resources :practicioners do |practicioner|
practicioner.resources :treatments
end
map.resources :treatments do |treatment|
treatment.resources :practicioners
end
Tous les admin :: * Les contrôleurs peuvent hériter de quelque chose comme admin :: BaseController qui effectue l'authentification suffisamment rigoureuse vérifier avant d'autoriser toute action à effectuer.
Dans la plupart des applications que j'ai vu, la face utilisateur frontal a un élément de design ou de style à elle, où ils disposition est souvent cernée par les éléments de navigation, la publicité, ou tout autre contenu éditorial. Création d'une vue admin séparé qui est bien rangé, montre beaucoup plus d'informations par page, et permet le tri ou la recherche sur les dimensions non exposées à l'utilisateur est très précieux dans la gestion même des ensembles de données moyennes.
Bien qu'il puisse sembler beaucoup de travail pour rendre ces contrôleurs d'administration supplémentaires et leurs formes associées, si vous faites attention à votre conception, vous pouvez recycler beaucoup de la fonctionnalité entre les deux zones, en particulier partials page.