Подход 1: Упорно выбор в скрытом поле
<li><%= link_to "Sign up", new_user_registration_path %></li>
<li><%= link_to "Are you a Medical Professional?", new_user_registration_path(medical: true) %></li>
Вы можете использовать параметр в пути для быстрого решения: new_user_registrations_path(medical: true)
приведет к маршруту с добавленным ?medical=true
).
В вашей регистрационной форме вы можете проверить, установлен ли параметр, а затем установить скрытое поле, чтобы запомнить параметр.
# Remember the medical user setting
<%= f.check_box :medical, checked: params[:medical].true?, hidden: true %>
Я не уверен, будет ли check_box тег работать так, не стесняйтесь редактировать, если вы найдете синтаксис будет отличаться. Надеюсь, поможет.
подход 2: Переопределение DEViSE RegistrationsController
Это вполне возможно, просто увидеть документы. Однако я бы чувствовал себя немного усталым, когда делал это, так как внутренности контроллера Devise могли измениться, и вам нужно будет вручную синхронизировать эти изменения.
Подход 3: В соответствии с просьбой: отображение различной формой регистрации
Использованием параметра вы можете решить в представлении, какая форма для отображения (не красиво, а не стильные, но работает :-D).
<% if params[:medical] %>
<%= render 'medical_signup_form' %>
<% else %>
<%= render 'regular_signup_form' %>
<% end %>
Обе формы должны будут нести все соответствующие атрибуты регистрации. Это, безусловно, дублирование кода, но, на мой взгляд, не стоит переоценивать действие контроллера устройства, которое может потребоваться изменить, если вы не заметите.
Большое спасибо. Похоже, что это сработает, однако я надеюсь показать другую страницу регистрации в зависимости от ссылки, которую они нажимают. Есть ли способ проверить параметр на уровне контроллера и отобразить другую страницу (с другой формой на ней)? Если вы измените свой ответ, не удаляйте предоставленную вами информацию, так как это очень полезно. Благодарю. – Leahcim
Я опубликовал другой подход для разных форм. Надеюсь, поможет. –
Спасибо, я ценю помощь. – Leahcim