Si la liste de cases à cocher est statique, vous pouvez effectuer tout cela directement dans l'action affichée. Dans le cas contraire, deux approches sont possibles:
Utilisez button_to_remote
pour récupérer une action affichant la fenêtre et servant également les js nécessaires;
Utilisez button_to_function
pour récupérer du code XML ou json (à votre gré) à partir d'une action, avec les étiquettes et les valeurs nécessaires pour les cases à cocher, puis affichez la fenêtre contextuelle.
La première peut être plus facile à faire si vous n'êtes pas familier avec tout cela, alors que le second est beaucoup plus efficace des données, car seule passe à travers l'appel asynchrone, et non le balisage ni javascript.
À propos de votre dernière question, si (un) cochant la case doit se traduire par une action côté serveur, prototype_helper
fournit une fonction observe_field
pratique, à utiliser comme ceci:
<%= check_box "foo", "bar" %>
<%= observe_field "foo_bar", :url => {:action => :some_action, :controller => :some_controller} %>
Si le (non) la vérification peut être géré côté client, vous pouvez simplement utiliser:
<%= check_box "foo", "bar", { :onclick => "someFunctionToDoWhatINeed(someArg);"} %>
seulement deux notes:
JavascriptHelper
et PrototypeHelper
ne sont que cela, des aides: ils vous permettent de faire certaines choses avec une syntaxe très simple et sont géniaux, tant qu'ils aident; quand ils ne sont plus, n'hésitez pas à les laisser tomber et aller pour le javascript simple. J'ai utilisé prototype
pendant un moment, mais je suis tombé amoureux de jquery
; vous voudrez peut-être y jeter un coup d'œil.
S'il vous plaît modifier votre question ou commenter ma réponse si je ne comprenais pas votre question et/ou n'était pas utile.
oh, j'aurais dû dire que j'utilise un prototype – lunaclaire