En tant que compagnon de Fonctions cachées de Ruby .
Essayez de vous en tenir à Rails, car l'autre site est un meilleur endroit pour les exemples spécifiques à Ruby. Un par message s'il vous plaît.
En tant que compagnon de Fonctions cachées de Ruby .
Essayez de vous en tenir à Rails, car l'autre site est un meilleur endroit pour les exemples spécifiques à Ruby. Un par message s'il vous plaît.
Pour éviter les soumissions de formulaires en double, Rails dispose d'une option intéressante pour les balises de soumission :
submit_tag "Submit", :disable_with => "Saving..."
Cela ajoute un comportement au bouton d'envoi pour le désactiver une fois qu'il a été cliqué, et pour afficher "Saving..." au lieu de "Submit".
Rails 4+.
DEPRECATION WARNING: :disable_with option is deprecated and
will be removed from Rails 4.1. Use 'data: { disable_with: 'Text' }' instead.
Ainsi, ce qui précède devient :
submit_tag 'Submit', data: { disable_with: 'Text' }
Je suis actuellement amoureux de div_for
y content_tag_for
<% div_for(@comment) do %>
<!-- code to display your comment -->
<% end %>
Le code ci-dessus donne ce résultat :
<div id="comment_123" class="comment">
<!-- code to display your comment -->
</div>
Je veux que la classe CSS soit comment other_class
? Pas de problème :
<% div_for(@comment, :class => 'other_class') do %>
<!-- code to display your comment -->
<% end %>
Voulez-vous un span et non un div ? Pas de problème, content_tag_for
à la rescousse !
<% content_tag_for(:span, @comment) do %>
<% end %>
# Becomes...
<span id="comment_123" class="comment">
<!-- code to display your comment -->
</span>
content_tag_for
est aussi très bien si vous voulez préfixer vos id
. Je l'utilise pour charger les gifs.
<% content_tag_for(:span, @comment, 'loading') do %>
<%= image_tag 'loading.gif' -%>
<% end %>
# Becomes...
<span id="loading_comment_123" class="comment">
<img src="loading.gif" />
</span>
Vous pouvez tirer parti du fait que les définitions des classes Ruby sont actives et que Rails met en cache les classes dans l'environnement de production, pour vous assurer que les données constantes ne sont récupérées dans la base de données qu'au démarrage de votre application.
Par exemple, pour un modèle qui représente des pays, vous définirez une constante qui réalise un Country.all
lorsque la classe est chargée :
class Country < ActiveRecord::Base
COUNTRIES = self.all
.
.
.
end
Vous pouvez utiliser cette constante dans un modèle de vue (peut-être dans une aide de sélection) en faisant référence à Country::COUNTRIES
. Par exemple :
<%= select_tag(:country, options_for_select(Country::COUNTRIES)) %>
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.