My application has Users
and Dwellings
. When a user
creates a dwelling
, the user
becomes the owner
This was an issue with saving the user
. I updated my create
action in the Dwellings
controller to to force a save of the user
using user.save!
to break the application and get an explicit error. Rails complained of a missing password
(and password length) and password_confirmation
. I am enforcing a presence
validation on both password
and password_confirmation
as well as a length
validation on password
in my User
model. I updated these validations to be enforced only on create
. This solved the issue. With the validations no longer being enforced on user.save
, the dwelling_id
was successfully added to the user
record. The newly implemented code is below.
#dwellings_controller.rb
...
def create
@dwelling = current_user.properties.build(params[:dwelling])
if @dwelling.save
current_user.dwelling = @dwelling
if current_user.save
flash[:success] = "Woohoo! Your dwelling has been created. Welcome home!"
else
flash[:notice] = "You have successfully created a dwelling, but something prevented us from adding you as a roomie. Please email support so we can try to correct this for you."
end
redirect_to current_user
else
render 'new'
end
end
...
--
#user.rb
...
validates :password, presence: { :on => :create }, length: { minimum: 6, :on => :create }
validates :password_confirmation, presence: { :on => :create }