ruby-on-rails - 将 Wicked 与 Devise 结合使用(两步注册过程)

标签 ruby-on-rails ruby-on-rails-4 devise

因此,我想让我的应用程序注册过程分为两个步骤(将来最终会更多)。但是,我无法获取 WickedDevise. 合作。具体来说,鉴于 Devise 的 Controller 是预先构建的,我不确定如何实现正确的 Controller 代码。

它的工作原理是,用户填写他们的标准帐户信息(电子邮件、用户名、通行证、密码确认),然后单击“下一步”,然后在第二页上填写他们的年龄。

这是我到目前为止所拥有的:

RegistrationController.rb(设备 Controller )

class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    super
  end

  protected

  def users_steps_path(resource)
    '/user_steps'
  end
 end 

UserStepsController.rb(邪恶 Controller )

class UserStepsController < ApplicationController
  include Wicked::Wizard
  steps :add_age

  def show
    render_wizard
  end

  def update
    render_wizard
  end
end 

第一步,devise/registrations/new.html.erb

<div class="styled email-input2">
  <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>
    <div><%= f.email_field :email, autofocus: true, placeholder: "Email", class: "email-input" %></div>
    <div><%= f.text_field :username, autofocus: true, placeholder: "Username", class: "email-input" %></div>
    <div><%= f.password_field :password, autocomplete: "off", placeholder: "Password", class: "email-input" %></div>
    <div><%= f.password_field :password_confirmation, autocomplete: "off", placeholder: "Password confirmation", class: "email-input" %></div>
</div>
    <div class="get_motivated2">
  <%= f.submit "Sign up", class: "sign-up btn-danger" %>
<% end %>
</div>
</div> 

第二步,add_age.html.erb

<%= form_for @user, url: wizard_path do |f| %>
  <%= f.age :age %>
  <%= f.submit "Add Age" %>
<% end %> 

路线.rb

  resources :user_steps

如果需要的话,很高兴提供任何其他代码以使其正常工作!

最佳答案

注册后首先确保您重定向到 wicked 的第一步网址。

class RegistrationsController < Devise::RegistrationsController
  protected

  def after_sign_up_path_for(resource)
    'your_wicked_first_step_path'
  end
end

要注册此 Controller :

devise_for :users, :controllers => { :registrations => "registrations" }

引用文献:https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-up-%28registration%29

关于ruby-on-rails - 将 Wicked 与 Devise 结合使用(两步注册过程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27106685/

相关文章:

css - 没有数据时删除下拉内容

mysql - 使用 MySQL 和 InnoDB 管理 Rails3 中的事务

ruby-on-rails - RGeo:灯具中的空间数据

ruby-on-rails - 我的自定义设计 View 未显示

ruby-on-rails - 设计 Ajax 登录 : 'sessions#create' only render 'create.js.erb' when it succeed

ruby-on-rails - 设计、Omniauth 和 'new with session'

ruby-on-rails - rails 教程 : Putting flash messages in partial yields error "undefined method ` each' for nil:NilClass"?

ruby-on-rails - Rails 中的 ArgumentError::MailersController#preview

ruby-on-rails - 如何将参数传递给通过 CSS 显示的表单部分?

ruby-on-rails-3 - 导轨 4 : Where to put JavaScript/CSS plugins