Могут ли методы ввода формы ActionView создавать теги <input> с внутренним html?

Я генерирую ввод, как это:

<%= form.radio_button("ans", ans.num.to_s) %>

Сгенерированный HTML-код:

<input id="myform_ans_1" name="myform[ans]" type="radio" value="1" />

Но то, что я ищу, это HTML:

<input id="myform_ans_1" name="myform[ans]" type="radio" value="1">Some Text</input>

Есть ли вариант, который я могу передать в метод radio_button для отображения желаемого HTML?

Как я понимаю необязательно options hash что вы можете передать radio_button, это только добавляет атрибуты к тегу html.

3 ответа

Решение

Если ваше приложение будет содержать много форм, вам обязательно стоит взглянуть на formtastic. Вы можете определить свои формы следующим образом:

<% 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 %>

Это создаст всю разметку, требуемую для HTML-форм, включая наборы полей, легенды, входные данные и метки.

<p><%= form.radio_button("ans", ans.num.to_s) %>

<%= form.label("Some Text") %></p>

Вы должны добавить <label> теги с for атрибут, как это:

<input id="myform_ans_1" ... /><label for="myform_ans_1">Foobar</label>

И нет, для этого нет параметров. Вам просто нужно использовать помощник метки.

Другие вопросы по тегам