2012-04-28 4 views
0

У меня есть пользовательская форма (репутация пользователя), которая напрямую не связана с какой-либо моделью. У меня есть несколько критериев репутации, которая влияет на стоимость окончательного returation Вот код формыОбработка пользовательских форм

<%= form_tag("/add_reputing",:method => "POST") do%> 
<div class="reputing_column"> 
    <p> 
     <b>Your feedback:</b> 
    </p> 
    <p> 
     <%= text_area_tag :comment,"",{:class=>"or-form-textarea"} %> 
    </p> 
    <%= submit_tag("Submit",:class=>"or-button")%> 
</div> 
<div class="reputing_column"> 
    <p> 
     <b>Recomendation:</b> 
    </p> 
    <% @criterias.each do |c| %> 
    <div class="reputing_row"> 
     <label><%= c.name%>:</label> 
     <div> 
      <% (c.rating_from .. c.rating_to).each do |i| %> 
      <%= radio_button_tag "reputing_#{c.id}", i%><%= (i<1)? i : "+#{i}"%> 
      <% end %> 
     </div> 
    </div> 
    <% end %> 
</div> 
<% end %> 

В контроллере мне нужно summirize значений а из "reputing_#{c.id}" полеев. А затем добавьте запись в таблицу репутации пользователя.

Как лучше и правильно обрабатывать данные из этой формы в контроллере? Я попытался решить эту проблему, но ничего не нашел.

+2

Без кода нет никакой возможности, мы можем понять вашу проблему и помочь вам. –

ответ

0

Ответов нет, поэтому я попытаюсь разъяснить, как вы их называли, пользовательские формы.

Вот форма выбора предпочтительного цвета с помощью переключателей.

= form_for :preferences, url: '', method: :post do |f| 
    - %w[black blue white green red yellow].each do |color| 
     = f.radio_button :color, color 
     = f.label :color, color.capitalize, value: color 
    = f.submit 

Прохладная вещь о формах в Rails, что они могут быть использованы с или без модели. Если у вас есть переменная экземпляра, называемая @preferences, тогда эта форма будет уважать это и будет называть метод color для определения «текущего» цвета. Этот цвет будет выбран в сгенерированной форме. Если эта переменная не существует, это не будет большой проблемой.

В любом случае, после отправки формы вы сможете получить доступ к выбранному цвету с помощью:

params[:preferences][:color]