Quoi de plus simple dans Ruby-on-Rails de créer plusieurs champs cachés simples avec des valeurs connues et le même nom dans un certain nombre de formes non-modèle (form_remote_tag dans mon cas, mais je Je devine que ce n'est pas pertinent)?Champ caché simple sous forme non-modèle
Par « champ caché simple », je veux dire celui où le nom est une seule chaîne (field_name
) plutôt qu'une partie d'un tableau (field_name[]
), de sorte que la valeur peut être lue simplement à partir du hachage params comme params[:field_name]
plutôt de params[:field_name][0]
.
j'ai trouvé que
<% form_remote_tag :url => {:action => "do_act"} do %>
<%= hidden_field :field_name, 0, :name => "field_name", :value => "foo" %>
<%= submit_tag "Submit" %>
<% end %>
produit un élément acceptable (<input id="field_name_0" name="field_name" type="hidden" value="foo" />
), mais si j'omettre le paramètre :name
alors le champ rendu a le nom field_name[0]
. Omettre le 0
provoque évidemment un comportement vraiment étrange.
<%= hidden_field_tag :field_name, "foo" %>
produit un élément acceptable s'il n'y en a qu'un seul, mais génère des avertissements HTML (ID dupliqués) s'il y en a plusieurs.
Existe-t-il un moyen de le faire (sauf en définissant un assistant) en moins d'arguments?
Ah, ça marche - mais me rends compte que j'ai fait mon sous-estimés question. J'ai en fait un certain nombre de formes, toutes soumises à la même action avec des valeurs différentes dans le champ caché - donc cela génère des avertissements parce que les identifiants d'entrée sont les mêmes. – Chowlett