Как мне создать радиовходы из данных из базы данных в виде рукописных форм? - PullRequest
0 голосов
/ 17 октября 2011

Я изучаю рельсы и создаю мини-приложение для опросов в качестве учебного пособия.Я знаю, как создавать формы вручную, но когда я хочу создать радиокнопки для формы, я не совсем понимаю, как это сделать: код, который отображает варианты моего опроса, выглядит следующим образом:

def show
  @poll = Poll.find(params[:id])
end

# show.html.erb - this is where I want to render the radio buttons/form
<h2><%= @poll.question %></h2>
<ul id="choices">
  <% @poll.choices.each do |choice| %>
    <li>
      <%= choice.choice %> &rarr; 
     </li>
  <% end %>
</ul>

Мои модели довольно просты:

class Poll < ActiveRecord::Base
  has_many :choices, :dependent => :delete_all
  validates :question, :presence => true
end

class Choice < ActiveRecord::Base
  belongs_to :poll
  validates :choice, :presence => true
end

Мой вопрос заключается в том, как мне построить форму с переключателями на основе вышеизложенного?По сути, я хочу, чтобы при отправке этой формы мой столбец голосов увеличивался на 1, я могу справиться с этим, но моя путаница заключается в том, как создать эту форму, кто-нибудь может мне помочь?

Спасибо

  • Джефф

1 Ответ

1 голос
/ 18 октября 2011

С готовыми помощниками в форме рельсов, что-то вроде этого должно работать (не проверено):

<%= form_for(@poll) do |f| %>
  <% @poll.choices.each do |choice| %>
    <%= radio_button_tag :chosen_id, choice.id %> <%= choice.choice %>
  <% end %>
<% end %>

Затем в методе update вашей PollsController сделайте вашу модельобновление на основе значения params[:chosen_id].

Это не самый элегантный способ сделать это, но не имея больше информации о ваших моделях, этого должно быть достаточно, чтобы вы начали.Кстати, это довольно простые вещи в Rails.Я предлагаю вам ознакомиться с помощниками форм Rails для ознакомления с основами, а затем, возможно, взглянуть на вложенные формы (моего примера нет) и, возможно, использовать некоторые из великих драгоценных камней, которыеупростить обработку форм, например simple_form , как предложил Майкл Даррант в комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...