Rails Devise Signup: отдельная Регистрационная форма для типа пользователя

Я пытаюсь создать новую страницу регистрации в Rails, специфичную для URL-адреса приглашения, такого как этот:

http://localhost:3000/users/sign_up?школа = элементарный & директор=true

Когда пользователь приглашает своего участника зарегистрироваться, я хотел бы получить опыт difference (новый шаблон, который скрывает определенные поля от обычной страницы регистрации).

Я могу передать в params в форму, как это:

<%= f.text_field :school, :value => params[:school] %>

Но я не могу получить логику в представлении, которое скрывает определенные входные данные в зависимости от URL, от которого пользователь входит. По сути, я ищу вилку нового.формат html.erb в newprincipal.формат html.Эрб

1 ответ

  1. Самый простой способ выполнить это-проверить значение principalparam в контроллере и сделать на его основе правильный шаблон, например:

    class RegistrationsController < Devise::RegistrationsController
    
      def new
       render :new_principal if params[:principal] == true
      end
    
    end
    

    Ruby on Rails следует условию над конфигурационной парадигмой, поэтому, если principalparam не установлен в true(или не присутствует)new, шаблон по умолчанию будет отображаться. Подробнее о макетах и отрисовке можно прочитать в официальном руководстве Rails.