Установка базовой сущности при создании нового пользователя в Devise - PullRequest
0 голосов
/ 26 сентября 2018

Я использую Devise для создания моих пользователей в приложении с Ruby on Rails.

У меня есть модель пользователя, у которой есть план (хобби, премиум и т. Д.)

При создании нового пользователя я хочу добавить базовый план к этому новому пользователю (длябизнес-правила необходимо, я не могу оставить это пустым).

Вопрос в том, как я могу добавить этот план при создании этого нового пользователя?

Вот мой контроллер:

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

В каком методе я должен добавить что-то вроде этого?

@user.plan = Plan.first
@user.save

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018
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
0 голосов
/ 26 сентября 2018

Добавил эту строку в модель пользователя

after_create do |user|
  user.plan = Plan.first
  user.save
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...