У меня возникли проблемы с отображением выбранных переключателей в действии edit
.Показать выбранные переключатели в режиме редактирования
Приложение позволяет user
создать свои собственные forms
(обзоры), а затем применить их (ответить на них) к их children
.
Вопрос:
При оказании new
действия, которое позволяет пользователю answer
его формы, forms
дисплея хорошо, и сохранить в базу данных должным образом. Назначает выбор содержимого ответа.
С другой стороны, edit
action дубликаты варианты, показывающие те, которые были выбраны И новые. Я проверяю ответы id
и отсылаю 2 раза каждый ответ.
Любые идеи о том, как исправить это поведение?
Соответствующий код:
_form.html.erb
<%= f.fields_for :answers do |a| %>
<% choices.each do |choice| %>
<%= a.radio_button :a_content, choice.c_description %>
<%= a.label :a_content, choice.c_description, :value => choice.c_description, class: 'no-margin' %>
<% end %>
<%= a.hidden_field :question_id, :value => question.id %>
<% end %>
answered_forms_controller.rb
def new
@child = current_user.children.find(params[:child_id])
@form = current_user.forms.find(params[:form_id])
@answered_form = @child.answered_forms.new(form_id: params[:form_id])
@answered_form.answers.build
end
def create
@answered_form = AnsweredForm.create(answered_form_params)
if @answered_form.save
flash[:success] = "Nuevo cuestionario " + @answered_form.form.f_title + " aplicado!"
redirect_to current_user.children.find(params[:child_id])
else
render 'new'
end
end
def edit
@child = current_user.children.find(params[:child_id])
@form = current_user.forms.find(params[:form_id])
end
def update
if @answered_form.update_attributes(answered_form_params)
flash[:success] = "Cuestionario para paciente actualizado!"
redirect_to @answered_form.child
else
render 'edit'
end
end
UPDATE:
Теперь я понял, что дублирование происходит потому, что в действии new
я получил @answered_form.answers.build
, но если я удалю его, я не вижу поля при создании нового answered_form
.
Я знал это, потому что пытался поставить в 2 раза @answered_form.answers.build
в new
действий, а затем получил дублируется при создании и утроенным при редактировании, так edit
всегда добавляет поля еще один раз, чем new
действия, если у вас есть что-то вроде @answered_form.answers.build
в действии new
.
Вы уверены, что это ** есть ** быть ** ** логическое значение? Я думал, что это должно быть одинаковое значение, пусть строка, целое число, логическое и т. Д. В любом случае ваш ответ, похоже, не работает. – aleherzko
Моя ошибка: вы правы, это не логическое значение, а второй параметр в radion_button_tag, показанный выше. Просто я сохранил логическое значение в моей базе данных. Допустим, у меня есть 4 радиокнопки под названием Car, с разными значениями: Ford, Fiat, Chrysler, Cadillac. Я не сохранил бренд автомобиля внутри одного поля моей модели, но вместо этого у меня есть 4 поля, каждый из которых заполнен True или False, для каждого возможного бренда. Это индивидуальный выбор. Хотя, сохраняете ли вы фактическое значение в своей базе данных или булево значение. «cheched» может быть присвоено только логическое значение. – Maxence
Я обновлен с прогрессом, вы думаете, что можете помочь мне с новой информацией, которую я предоставил? – aleherzko