Рельсы + radio_button_tag - PullRequest
       0

Рельсы + radio_button_tag

0 голосов
/ 08 августа 2011

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

Но, поскольку имя одной радиокнопки отличается от другого, я могу выбрать все три параметра вместо одного

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

Есть ли какая-нибудь другая работа, чтобы сделать это

Просмотр

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>

Контроллер

params[:fields].each do |i, values|
u = Sample.new
u.name = values["name"]
u.answer = values["answer"] ? 1 : 0
u.save
end

спасибо,

Ответы [ 2 ]

1 голос
/ 08 августа 2011

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

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

Для правильной работы переключателей необходимо использовать уникальное значение (i) для каждой опции:

<%= radio_button_tag "answer", i, false%>

Тогда в вашем контроллере

u.answer = params["answer"] == i ? 1 : 0
1 голос
/ 08 августа 2011

Вы, вероятно, хотите что-то вроде этого:

<% 1.upto(3) do |i| %>
    <%= text_field_tag "fields[#{i}][name]",'' %>
    <%= radio_button_tag "fields[answer]", '#{i}', false%>
<% end %>

В результате будет получено поле ответа со значением 1,2 или 3 в зависимости от того, какое из них выбрано.

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