2016-12-25 211 views
0

我正在做一个多步骤注册过程。我将这些值存储在session。并在最后一步,我想打电话给DeviseRegistration#create。我已经正确配置了devise_scope,并且我可以通过DeviseRegsitration#create方法接收呼叫。设计注册自定义

我的主要问题是,它使用POST请求上提交的参数,而不是我的session变种。

我已经试过了诸如:

request.params = ActionController::Parameters.new session[:registration_params] 

我读过ActionDispatcher类,但我无法确定我怎么能做到这一点。

回答

0

您可以定制设计控制器。作为记录在the wiki

rails generate devise:controllers users 

该发电机将色器件控制器添加到您的项目。您可以通过直接编辑源代码来修改您所需的控制器。

0

我终于所做的是,在一个已经扩展设计方法我的控制器的create

class Users::RegistrationsController < Devise::RegistrationsController 
    def create 
    params["user"] = session[:registration_params] 
    session[:registration_params].deep_merge!(user_params) 
    @user = User.new session[:registration_params] 
    if @user.valid? && last_step 
     params["user"] = session[:registration_params] 
     configure_sign_up_params 
     super 
    end 
    end 
end