Отправка нескольких форм в Rails
Я должен отправить несколько форм, я последовал совету этого поста:Как отправить несколько одинаковых форм с одной страницы в Rails - желательно одной кнопкой
Заметьте, я все еще довольно новичок в Rails / программировании, и некоторые из моих способов работы могут быть не идеальными.
Вот мой взгляд:
= form_tag ([@event, @registration]) do
- x.times do
= render 'multi_form'
= submit_tag "Submit registrations"
Форма (обратите внимание, что есть еще поля):
- hidden_field_tag :event_id, :value => @event.id
.control-group
= label_tag :title
.controls
= select("registrations[][title]", :registration, Registration::TITLE)
.control-group
= label_tag :first_name
.controls
= text_field_tag "registrations[][first_name]"
.control-group
= label_tag :last_name
.controls
= text_field_tag "registrations[][last_name]"
.control-group
= label_tag :email
.controls
= text_field_tag "registrations[][email]"
Контроллер:
def create
array_number = 0
x.times do
@registration = Registration.new(params[:registrations][array_number])
@registration.save
UserMailer.registration_user_notify(@event, @registration).deliver
array_number = array_number + 1
end
respond_to do |format|
format.html {redirect_to thank_you_event_registrations_path(@event)}
end
end
При отправке кажется, что в какой-то степени это происходит правильно, поскольку он отправляет электронное письмо по x уникальным адресам электронной почты, что заставляет меня думать, что @registration содержит правильные данные в каждом цикле - он не сохраняется в база данных однако. Я вижу, что все параметры есть в файле журнала, за исключением того, что: title, кажется, делает что-то плохое (см. Ниже: но я остановлюсь на этом позже), главное, что я хочу сделать сейчас, это запустить хотя каждый массив и сохранить его как новую запись.
Журнал:
Parameters: {"utf8"=>"â", "authenticity_token"=>"BQXm5fngW27z/3Wxy9qEzu6D8/g9YQIfBL+mFKVplgE=", "event_id"=>"7", "registrations"=>[{"title"=>{"registration"=>"Mrs"}, "first_name"=>"Person", "last_name"=>"One", "email"=>"charl@privatelabel.co.za"...
Я надеюсь, что предоставленной мною информации достаточно, любые советы будут оценены.
Спасибо!
EDIT:
@iblue
Это добилось цели! Это была ошибка проверки, и она сохраняла все в разных строках. Большое спасибо!
Еще одна вещь, если можно, любая идея, как часть формы: title должна быть отформатирована для возврата параметра:
"title"=>"Mrs",
в отличие от:
"registrations"=>[{"title"=>{"registration"=>"Mrs"},
Еще раз спасибо!