¿Pueden los métodos de entrada de forma ActionView crear etiquetas con el código HTML interno?
-
22-09-2019 - |
Pregunta
estoy generando una entrada como esta:
<%= form.radio_button("ans", ans.num.to_s) %>
el HTML generado es:
<input id="myform_ans_1" name="myform[ans]" type="radio" value="1" />
Pero lo que yo estoy buscando es este código HTML:
<input id="myform_ans_1" name="myform[ans]" type="radio" value="1">Some Text</input>
¿Hay una opción que pueda pasar en el método render radio_button el html deseada?
A mi entender la options hash
opcional que se puede pasar a radio_button
, esto sólo añade atributos a la etiqueta html.
Solución
Si su aplicación va a implicar una gran cantidad de formas que sin duda debe echar un vistazo a Formtastic . Puede definir sus formas, así:
<% semantic_form_for @article do |form| %>
<% form.inputs :name => "New Article" do %>
<%= form.input :title %>
<%= form.input :body %>
<% end %>
<% form.buttons do %>
<%= form.commit_button %>
<% end %>
<% end %>
Esto generará todo el marcado requerido para formularios HTML incluyendo fieldsets, leyendas, entradas y etiquetas.
Otros consejos
Se debe añadir etiquetas <label>
con el atributo for
como esto:
<input id="myform_ans_1" ... /><label for="myform_ans_1">Foobar</label>
Y no, no hay ningún parámetro para eso. Usted sólo tiene que utilizar el ayudante etiqueta.
<p><%= form.radio_button("ans", ans.num.to_s) %>
<%= form.label("Some Text") %></p>