Rails: добавление значений из формы без сложных моделей - PullRequest
0 голосов
/ 02 декабря 2011

Я хочу создать форму, в которой при отправке все значения из формы складываются вместе.

В то же время я бы определил сессию в контроллере, чтобы позже добавленные значения могли быть записаны в БД.

views / quiz / new.html.erb:

<% form_tag do %>
        <%= form_tag(:controller => "quiz", :action => "new", :method => "post") %>
        <div id="container">
        <p class="question">The glass is...</p>
        <ul>
            <%= radio_button_tag :value, '2' %>
            <li>Half full.</li><br>
            <%= radio_button_tag :value, '1' %>
            <li>Half empty.</li><br>
            <%= radio_button_tag :value, '3' %>
            <li>What glass?</li><br>
        </ul>


<p class="question">When does the narwhal bacon?</p>
            <ul>
                <%= radio_button_tag :value, '2' %>
                <li>Tomorrow.</li><br>
                <%= radio_button_tag :value, '1' %>
                <li>Midnight.</li><br>
                <%= radio_button_tag :value, '3' %>
                <li>Mmm, I love bacon.</li><br>
            </ul>

         <p class="right">
            <%= submit_tag "Submit Answers", :class => "submit_button" %>
        </p>
        </div>
<% end %>

Пока не знаю, как будет выглядеть контроллер.

Как бы я добавил выбранные значения вместе при отправке?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2011
sum = 0
params.each_pair do |key, value|
  sum += value.to_i
end

# sum now has your added values
0 голосов
/ 02 декабря 2011

Параметры (из URL и элементов формы) передаются в действия вашего контроллера.

По сути, вы можете взять эти параметры (они являются строками), преобразовать соответствующие в целые числа, просто сложить их и сохранить это значение в БД.

Вот учебник, который, я надеюсь, поможет, объясняющий, как использовать параметры в контроллерах:

http://rails.nuvvo.com/lesson/6371-action-controller-parameters

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