J'ai donc un modèle 'Project' dont la table db respective a de nombreux attributs.Diviser une vue d'édition Rails pour les besoins de l'interface utilisateur
Idéalement, quand je frappe projects/1/edit
, je voudrais l'utilisateur:
- Voir et être en mesure de modifier une partie seulement du projet attribue
- Voir un menu de navigation qui lui permet de naviguer à une autre vue qui permet de voir et de modifier les attributs laissés.
Tout cela au lieu de montrer tous les attributs dans une vue d'édition.
Je suis penché vers une solution JS qui cache et montre des attributs spécifiques quand un menu est cliqué. Cependant, je veux idéalement que les urls reflètent la section se trouve l'utilisateur, par exemple:
Au lieu d'une URL comme projects/1/edit
Je voudrais quelque chose comme: projects/1/edit/name_of_section_1
et projects/1/edit/name_of_section_2
En tout cas, je me demande Quelle serait la meilleure pratique quand il s'agit de diviser des vues comme celle-ci.
MISE À JOUR: Seulement quelques precisions/révisions de la solution de Dan ci-dessous pour référence future
J'ai utilisé sa deuxième approche avec succès la révision de son code proposé comme suit:
Config/routes.rb révisé le nom du contrôleur pour les deux routes aux 'projets'
resources :projects do
member do
get "settings/:panel" => "projects#edit", as: :settings
patch "settings/:panel/update" => "projects#update", as: :update_settings
end
end
Contrôleurs/projects_controller.rb Il y avait une erreur dans le code proposé pour l'action de modifier si je légèrement changé pour le faire fonctionner
def edit
panel = ['general', 'invitations', 'welcome_message', 'danger'].detect{|p| p == params[:panel] }
render template: "projects/#{panel}.html.erb" if panel
end
Dan, merci beaucoup pour votre réponse. S'il vous plaît laissez-moi essayer et revenir à vous. Je pense que je dois essayer de comprendre clairement la solution. Je vous ferai savoir bientôt comment ça se passe – Andrew
Dan, j'ai essayé votre deuxième approche avec succès. Merci beaucoup. Je comprends toujours Rails et parfois confus avec la façon de configurer les routes, alors vous m'avez économisé du temps! Je viens de mettre à jour ma question pour refléter certaines modifications que j'ai dû apporter à votre code pour que cela fonctionne. Si quelque chose ne vous semble pas correct. Faites le moi savoir. À votre santé. – Andrew
Sucré comme. Les révisions sont à peu près correctes. C'était l'heure du dîner quand je l'écrivais et ma femme me donnait ce regard qui disait «dépêche-toi». N'hésitez pas à l'accepter comme réponse et je serai un homme heureux :) – Dan