Comment créer différents modes d'affichage. Comme un visiteur peut choisir la liste ou la vue de boîte.Rails comment créer des vues différentes?
Répondre
Cela dépend de combien ces vues sont similaires, ce que je ferais est de créer des partiels pour chaque vue, puis dans la vue principale j'appelle le droit en fonction de la propriété. Disons que vous avez une fonction application_helper
which_view
dans votre index
vous pouvez écrire quelque chose comme ceci:
<!-- your index -->
<%= render which_view == :box ? 'index_box' : 'Index_list' %>
Je préfère le précédent, mais si vous avez quelques changements que vous pouvez aller pour quelque chose comme:
<% if session[:view_type] == 'box' %>
<!-- box content -->
<% else %>
<!-- list content -->
<% end %>
** EDIT **
rendre l'action:
# application_controller.rb
def set_view_type # TODO: refactor
session[:view_type] = params[:view_type]
redirect_to :back
end
définir vos itinéraires:
# routes.rb
match '/set_view_type' => 'application#set_view_type', :as => :set_view_type
écrire votre formulaire:
<!-- _view_type_selection.html.erb -->
<%= form_tag set_view_type_path do %>
<%= radio_button_tag :view_type, :box, session[:view_type] == 'box' %>
<%= radio_button_tag :view_type, :list, session[:view_type] == 'list' %>
<%= submit_tag 'select' %>
<% end %>
Pas les meilleures pratiques mais ça marche!
Comment créer la méthode d'assistance? –
Je suis presque d'accord avec ecoologic. Au lieu de la deuxième solution j'utiliserais quelque chose comme l'instruction de cas dans le contrôleur qui décide quel modèle devrait être rendu.
Comment créer la méthode d'assistance?
Ajoutez dans le fichier <controller_name>_helper
Ah oui! c'est mieux, tu évites de rendre le mélangeur qui rend les partiels! - Peut-être que vous avez une bonne idée sur la façon de stocker la valeur, je ne l'aime pas beaucoup – ecoologic
Je ne connais pas l'idée de Rails débutant, mais au lieu de le stocker, je préfère le voir en URL. Donc, si j'envoie un lien pour une page intéressante, il semble que sur mon écran et je peux naviguer sur le destinataire sur cette page. Ou je peux envoyer ce lien directement avec l'ancre, qui pourrait être dans une mise en page, mais pas dans un autre. C'est aussi mieux pour bookmarking, etc ... Je ne connais pas d'exemple en anglais, mais recherchez ce http://tv.seznam.cz/radkovy-program et ce http://tv.seznam.cz/sloupcovy-program . Je peux envoyer un de ces liens et dire "Regardez la deuxième ligne/colonne" – Mailo
Je comprends votre pov, Personnellement, je n'aime pas stocker les paramètres dans l'URL, mais en pensant à une option invité, il est parfaitement logique – ecoologic
- 1. Rails 3: Vues différentes pour chaque modèle
- 2. fragment: créer différentes vues dans un fragment
- 3. Deux vues JSON différentes avec Rails
- 4. Pouvons-nous créer différentes barres de tabulation pour différentes vues?
- 5. Comment ajouter des vues différentes dans pagecontroller?
- 6. Créer des vues - iPhone
- 7. Peut-on créer des vues différentes pour différentes catégories d'utilisateurs dans SharePoint?
- 8. Renvoyer des vues différentes dans un contrôleur
- 9. Admin, deux liens vers des vues différentes?
- 10. même classe dans différentes vues
- 11. Vues Codeigniter: Comment créer des sous-répertoires pour mes vues?
- 12. Contrôleurs de communication Angularjs dans différentes vues - Rails
- 13. Ajouter des images différentes à différentes vues d'annotation dans xcode
- 14. Comment créer des vues dans Access 2007?
- 15. Comment créer des vues d'édition personnalisées MVC?
- 16. Comment créer des vues personnalisées pour AppWidgets?
- 17. Comment créer des vues partagées dans MVC
- 18. Rendu différentes vues partielles
- 19. viewflipper avec différentes vues
- 20. Comment synchroniser plusieurs animations dans différentes vues
- 21. comment définir des vues différentes pour l'administrateur et l'utilisateur
- 22. Impossible de créer des vues
- 23. Ruby on Rails 3 - créer des plugins ou des moteurs avec des vues et des contrôleurs?
- 24. Comment créer des vues de taxonomie Drupal 7 dynamiques
- 25. Comment créer des vues multi-niveaux dans le style NSTableView?
- 26. Test des vues partielles des rails autonomes
- 27. Ember.js différentes vues si connexion
- 28. Pousser différentes vues d'une table
- 29. Comment créer des vues d'applications iOS par programmation
- 30. ListView comme activité avec des vues différentes pour chaque ligne
Je demande de l'aide aussi dans http://codereview.stackexchange.com/questions/1192/how-to-manage-different-views – ecoologic
[et le nettoyage solution finalement arrivé!] (http://codereview.stackexchange.com/questions/1192/how-to-manage-different-views/10319#10319) – ecoologic