2013-07-27 5 views
1

Мне нужна минимальная форма на первой странице моего сайта рельсов, которая передает значения до полной формы (создайте созданную форму регистрации).Лучший способ передать переменные из одной формы в другую

То, что я сейчас сделал, это простой form_tag, который использует метод get на new_user_registration_path (созданный приложением). А затем выведите переменные из URL-адреса и заполните поля. Но я считаю, что это может быть сделано лучше, возможно, с переменной и form_for?

Я нашел this example, но предпочел бы сохранить соглашения Rails, которые, как представляется, являются переменными, плюс я не говорю о пользовательских сеансах.

Я просто изучаю рельсы, может ли кто-нибудь помочь?

Редактирование: добавлены скриншоты, чтобы помочь прояснить случай использования надеюсь:

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

small form

она проходит введенные переменные в этой полной форме на другой странице:

full form

ответ

1

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

@variable = params[:variable] 
redirect_to :new_form 

Тогда в вашей второй форме вы можете использовать скрытое поле, устанавливающее @variable, и просто получить его обратно в params снова.

Другой вариант заключается в использовании flash

+0

Довольно круто, не знал, что вы можете использовать flash для передачи данных. Но это означало бы, что мне нужен контроллер для более мелкой формы? В настоящее время это просто базовый 'form_tag', передающий переменные. –

+0

Вам не нужен другой контроллер, вы можете создать другой метод в том же контроллере с настраиваемым маршрутом. Однако, как я уже говорил, случай использования звучит странно, можете ли вы дать дополнительную информацию? Это как «кнопка быстрого доступа», в которой они входят в одно поле, и они берут их в полную форму с заполненной кнопкой? – creativereason

+0

Я обновил вопрос выше для вас с изображениями, они помогают? И да, это быстрый знак, но он приводит к полной форме с теми тремя полями, которые вы ввели, и вы завершаете оставшиеся. –

0

Checkout Wicked камень. Его упрощает создание многоэтапных форм. поэтому я думаю, что это поможет вам и в этом случае.

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

Много раз мне оставалось хотеть RESTful способ показать шаг за шагом процесс, который может быть или не быть связан с ресурсом. Wicked дает гибкость, чтобы делать то, что я хочу, скрывая все действительно неприятные вещи, которые вы не должны делать в контроллере, чтобы сделать это возможным. На нем Ядро Wicked - это конечный автомат RESTful (ish), но вам не нужно знать, что просто используйте его.

Для получения более подробной информации см:

+0

Удивительный драгоценный камень Я держу поданный, но кажется излишним для этого случая? Мне просто нужно передать 3 поля в другую форму. –

1

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

+0

Да, я согласен, но это то, что я вижу все больше и больше - делает формы, которые долго выглядят менее устрашающе. Он находится наверху главной страницы в разделе героя, поэтому он должен быть коротким. –

+0

Ваше добавление плохой UX для решения проблем с UX? –

+0

Только так клиент выслушает разработчика. –

Смежные вопросы