David
Joined
Activity
Hi y'all!
I am brand new to the world of rails so please forgive my ignorance with this question :)
I am currently setting up a new app which has a two models:
- Account
 - User
 
My seed file looks like this:
account = Account.create!(name: 'Account Name')
account.users.create!(
  first_name: 'Test',
  last_name: 'Test',
  email: 'test@test.com,
  password: 'test',
  owner: true
)
And the users model is:
class User < ApplicationRecord
  belongs_to :account
 ...
end
I have created a custom Devise registrations controller to let new users sign up:
class Users::RegistrationsController < Devise::RegistrationsController
  # GET /sign_up
  def new
    render inertia: 'Auth/Register', props: {}
  end
  # POST
  def create # rubocop:disable Lint/UselessMethodDefinition
    super
  end
  def sign_up_params
    params.require(:user).permit( :email, :password, :first_name, :last_name)
  end
end
BUT! I need to pre-create an account for a user before I actually create the user here and this is something I have been stuck on for a few days with no luck (to the point Ive considered changing the association's).
My best guess was I needed to do something like:
# POST
  def create # rubocop:disable Lint/UselessMethodDefinition
    account = Account.create!(name: 'Test')
    account.users.create!(sign_up_params)
  end
to mimic the logic of the seeds file but this seems distinctly wrong to me and doesn't work.
So my question is, is it possible and how can I pre-create a Account model for a user and then associate it to the user in the registrations create method before the user is persisted to the database?
Thank you so much in advance for any help!