2016-12-25 154 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