尝试整合两者是一场噩梦。
更新
UsersController.rb
class UserStepsController < ApplicationController
include Wicked::Wizard
steps :confirm_password
def show
render_wizard
end
def update
render_wizard
end
end
RegistrationsController(设计)
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
super
end
protected
def users_steps_path(resource)
'/user_steps'
end
end
confirm_password.html.erb(查看)
<%= form_for @user, url: wizard_path do |f| %>
<%= f.password_field :password_confirmation %>
<%= f.submit "Change Password" %>
<% end %>
的routes.rb
resources :user_steps
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: "get_motivated btn-danger" %>
<% end %>
</div>
</div>
这是我到目前为止所做的事情,但是当我用设计注册时,它只是登录我。它没有进入:confirm_password步骤。不知道我在这里做错了什么,我已经跟踪了关于railscasts的Ryan Bates教程,但是他并没有使用Devise,这让我有些失望。
答案 0 :(得分:1)
我假设您要做的是:在用户填写注册表单(此步骤中尚未创建用户记录)后,用户将被重定向到再次确认其密码的页面她的用户帐户已创建。
当您将注册表单提交到registration_path(resource_name)
时,设计将创建一个新的用户记录并让您登录。您应该提交所有用户信息以创建用户帐户的位置在confirm_password.html.erb
。提交注册表单应该只存储数据(这由wicked
完成)并将用户重定向到密码确认页面。
希望这有帮助。