Помощь в передаче / хранении данных из одной HTML-формы в другую - PullRequest
0 голосов
/ 23 августа 2011

В моем приложении есть две формы для создания пользователя.
Форма 1. Я ввожу следующие данные от пользователя в форму 1.

  • Полное имя
  • Адрес электронной почты
  • Пол
  • Дата рождения
  • Изображение профиля

И в Форме 2 я прошу его заполнить

  • желаемое @username и
  • пароль

Проблема в том, что я связал свои модели следующим образом, что

User has_one UserProfile  
UserProfile belongs_to User  

&

Адрес электронной почты, имя пользователя и пароль являются атрибутами модели пользователя.
Остальные атрибуты принадлежат модели UserProfile.

Но в моих формахЯ использую адрес электронной почты в форме Form1 и другие атрибуты в форме Form2.

Должен ли я сделать формы в виде Rails-форм или простых HTML-форм?
Как мне это сделать ???

ОБНОВЛЕНИЕ: - Я не хочучтобы создать объект UserProfile без создания объекта User, поэтому мне нужно каким-то образом сохранить значения формы 1 в javascript, а затем, когда форма 2 будет отправлена, затем передать их оба в метод контроллера Rails.

Ответы [ 2 ]

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

Я не вижу необходимости создавать как UserProfile, так и User, но если вам нужно его создать, и вам сначала нужно заполнить form1, которая является UserProfile, и только затем form2, которая является User, вы можете создать следующее.

В форме1 сначала создайте User.new и используйте User.save, затем у вас есть новый User.id, и, предположительно, был создан новый UserProfile со ссылкой: user_id,

(имейте в виду, что процесс проверки является более сложным, потому что теперь, если вы проверяете: username, он имеет значение null и, следовательно, не является уникальным или каким-либо другим, вы можете установить значения User.new по умолчанию и вызывать данные «tempUser», пока они не будут полностью созданы.)

тогда у вас есть user_id для ссылки, заполните UserProfile, сохраните его, перенаправьте обратно в форму пользователя, обновите ее, проверьте введенные пользователем данные и сохраните их.

Зачем вамХотелось бы так катиться?

Разве не иметь только пользователя и получать данные?

Или меньше проверки в процессеСначала пользователь должен создать объект User (имя пользователя, сначала пароль), а затем создать объект UserProfile (электронная почта и т. д.).

Существуют способы обойти все это, это просто сложнее :(

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

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

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