43 votes

Dans quel dossier dois-je placer les modèles partiels partagés "globaux" ?

J'utilise Ruby on Rails 3.0.7 et j'envisage d'utiliser des modèles partiels. Toutes les classes de mon application utiliseront les mêmes partiels et je dois donc décider où les placer.

Est-ce une bonne idée de placer des modèles partiels partagés "globaux" dans le répertoire de l'utilisateur ? lib dossier ? Si non, quelle est la pratique courante pour choisir le dossier où les placer ? Des conseils sur la façon de nommer et de charger correctement ce dossier ?

54voto

venables Points 1449

La norme place tous les partiels partagés dans app/views/shared et en les référençant comme

render :partial => 'shared/partial_name'

Si vous avez un partiel standard "ligne dans une liste" (disons, pour une page d'index), vous pourriez utiliser un partiel partagé comme :

# To render a single object row:
render :partial => 'shared/item', :locals => { :item => @item }
# Or to render them all:
render :partial => 'shared/item', :collection => @items

16voto

Charles Smith Points 31

Rails 4 :

mettez les partiels que vous avez l'intention d'utiliser dans toute votre application dans /app/views/application

Ensuite, n'importe où dans votre application, vous pouvez facilement :

render partial: 'partial_name', variable_name: variable

L'avantage supplémentaire est que vous pouvez toujours remplacer le partiel dans un espace de vue particulier en redéfinissant ce que ce partiel signifie dans la section /app/views/controller_name/_partial_name.html.erb et les appels au partiel feront alors référence au contexte plus spécifique dans lequel vous vous trouvez. Si ce contexte n'existe pas, vous obtenez le partiel au niveau de l'application.

Suggestion tirée de Thoughtbot

4voto

Chubas Points 8670

Conventions est de les placer sous app/views/shared

Si vous avez de nombreux partiels, je vous recommande de les placer dans des sous-répertoires de ce dossier, selon ce qui est le plus logique pour votre application, car avoir de nombreux partiels dans un seul répertoire n'est généralement pas une bonne pratique.

-3voto

alex0112 Points 195

Rails 4 :

Mettez le partiel dans /app/views/layouts

Dans tous les cas, vous pouvez mettre <% render 'layouts/_partial_name.html.erb' %> .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X