【发布时间】:2014-04-26 02:06:04
【问题描述】:
我有一个由 devise 生成的用户注册表单。提交表单并将用户对象保存到数据库时,我想创建并保存另一个对象,在单独的控制器(leads_controller.rb)中生成并传递刚刚保存的用户对象。注册表单正在收集电子邮件、密码和密码确认。
保存用户后,我需要将该用户对象传递给leads_controller 以调用新的和创建的操作。
leads_controller.rb
class LeadsController < ApplicationController
include Databasedotcom::Rails::Controller
def new
@lead = Lead.new
end
def create
lead = Lead.new(params[:lead])
lead.Email = @user.email
end
end
routes.rb
# User route
devise_for :users
devise_for :lenders, skip: :sessions, :controllers => {:registrations => "lenders/registrations"}
devise_for :businesses, skip: :sessions
root :to => 'business_account#dashboard', :constraints => lambda { |request| request.env['warden'].user.class.name == 'Business' }, :as => "business_root"
root :to => 'lender_account#dashboard', :constraints => lambda { |request| request.env['warden'].user.class.name == 'Lender' }, :as => "lender_root"
# Leads route
resources :leads
registrations_controller.rb
class Lenders::RegistrationsController < Devise::RegistrationsController
before_filter :update_sanitized_params
def new
super
end
def create
super
end
def update
super
end
private
def update_sanitized_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation, :type)}
end
end
我可以在我的 registrations_controller.rb 中添加一个操作来将用户对象传递给leads_controller.rb吗?
【问题讨论】:
-
您是使用贷方还是用户注册控制器进行注册
-
@ShamsulHaque 我正在使用贷方注册控制器(如上所示)覆盖默认用户注册控制器。我这样做是为了以某种方式调用主控制器并将用户传递给它。我只是不知道该怎么做。
-
您是否检查过它是否会发送给贷方注册控制器
-
@ShamsulHaque 是的,我已经通过在创建对象时将贷方registrations_controller 放到我的终端上来测试它。
标签: ruby-on-rails ruby-on-rails-4 devise salesforce