2015-10-11 2 views
1

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

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

<div class="field"> 
    <%= f.label :first_name %> 
    <%= f.text_field :first_name, autofocus: true %> 
</div> 

<div class="field"> 
    <%= f.label :last_name %> 
    <%= f.text_field :last_name %></br> 
</div> 

<div class="field"> 
    <%= f.label :city %> 
    <%= f.text_field :city %> 
</div> 

<div class="field"> 
    <%= f.label :address %> 
    <%= f.text_area :address %> 
</div> 

<div class="field"> 
    <%= f.label :gender %> 
    <span class="option">Male</span><%= f.radio_button :gender, "m" %> 
    <span class="option">Female</span><%= f.radio_button :gender, "f" %></br> 
</div> 

<div class="field"> 
    <%= f.label :mobile_no %></br> 
    <%= f.telephone_field :mobile_no %> 
</div> 

<div class="field"> 
    <%= f.label :website %> 
    <%= f.url_field :website %> 
</div> 

<div class="field"> 
    <%= f.label :email %> 
    <%= f.email_field :email %> 
</div> 

<div class="field"> 
    <%= f.label :password %> 
    <% if @validatable %> 
     <em>(<%= @minimum_password_length %> characters minimum)</em> 
    <% end %><br /> 
    <%= f.password_field :password, autocomplete: "off" %> 
</div> 

<div class="field"> 
    <%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation, autocomplete: "off" %> 
</div> 

<div class="field"> 
    <%= f.label :skills %> 
    <%= f.text_field :skills %> 
</div> 

<div class="field"> 
    <%= f.label :passion %> 
    <%= f.text_field :passion %> 
</div> 

<div class="field"> 
    <%= f.label :description %> 
    <%= f.text_area :description %> 
</div> 
<% end %> 

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

class RegistrationsController < Devise::RegistrationsController 
    def after_sign_up_path_for(resource) 
     redirect_to edit_user_path(resource) 
    end 
end 

routes.rb

devise_for :users, :pro, :amateur, controllers: { registrations: "registrations" } 

Однако редирект не похоже на работу. Я также пробовал after_inactive_sign_up_path_for, поскольку использую подтверждаю, все еще не работаю.

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

ответ

0

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

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

Это отличное railscast о том, как иметь многоступенчатую форму без камней. единственное отличие состоит в том, что вам необходимо переопределить метод create в разработке

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