Ce n'est pas vraiment une réponse à votre question, mais parce que vous n'avez pas eu d'autres réponses, je vais vous en parler. D'abord, la plupart des gens ne feraient pas ce que vous faites. Deuxièmement, cela n'a aucun sens de vouloir faire exactement ce que vous demandez. C'est à dire. pour définir le bouton radio en fonction de la valeur de @choices[1].id
. Peut-être que vous vouliez dire quelque chose comme "la valeur de @choice.id
"?
Quoi qu'il en soit, revenez à "First" - comment la plupart des gens le feraient?
La plupart des gens utiliseraient l'assistant radio_button
, pas l'assistant radio_button_tag
. Alors comment le faites vous? Eh bien ce dont vous avez besoin de votre contrôleur est un seul objet que vous appellerez une méthode pour obtenir/définir l'une des valeurs que vous avez dans votre groupe radio. Généralement, il s'agit d'un objet modèle qui a une association belongs_to
avec un autre modèle. Comme vous pourriez avoir:
class Customer < ActiveRecord::Base
belongs_to :contact_method
end
Vous allez leur permettre de choisir qui ContactMethod
qu'ils veulent utiliser, donc en supposant que vous avez un ensemble @customer
dans votre contrôleur, vos boutons radio seraient comme ceci:
<% ContactMethod.all.each do |cm| %>
<%= radio_button :customer, :contact_method_id, cm.id %>
<%= label :customer, :contact_method_id, cm.name, :value => cm.id %>
<% end -%>
cela va créer autant de boutons radio que vous avez ContactMethod
s et il marquera automatiquement un comme cochée si @customer.contact_method
a une valeur qui correspond à l'un de ces ContactMethod
s
Mise à jour pour utiliser le '* _i d' des versions des méthodes. – smathy