在Devise中创建新用户时设置基本实体

时间:2018-09-26 12:45:02

标签: ruby-on-rails devise

我正在使用Devise在Ruby on Rails的应用程序中创建用户。

我有一个带有计划(爱好,高级等...)的用户模型

在创建新用户时,我想向该新用户添加基本计划(出于业务规则的需要,我不能将其保留为空白)。

问题是,在创建新用户时如何添加该计划?

这是我的控制者:

for dir in */ .*/ ; 
do
    for entry in $dir
    do
        path="$entry"
        empty=""
        file="${$dir/$empty}"
        echo -e "$dir;$file;" >> file.csv
    done

done

我应该在哪种方法中添加类似内容?

class RegistrationsController < Devise::RegistrationsController
  clear_respond_to
  respond_to :json

  def save_user_type
    session[:user_type] = params[:user_type]
  end

  private

  def sign_up_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :type, :provider )
  end

end

2 个答案:

答案 0 :(得分:1)

class User < ActiveRecord::Base        
  has_one :plan

  after_create :build_default_plan

  private
  def build_default_plan
    plan.create(#paln_params)
    #.. so on
  end
end

答案 1 :(得分:0)

将此行添加到用户模型

after_create do |user|
  user.plan = Plan.first
  user.save
end