How do I transfer user data on delete
I have a rails app with company users using devise. I want to be able to delete users and select an employee to transfer the foreign keys to.
Hope that makes sense? Thanks in advance
Hope that makes sense? Thanks in advance
You may have to divide and conquer the steps first.
1. Identify the users you want to delete
2. Identify the employee
3. Transfer id
4. then delete user
depending on the table, you could use SQL to a large update provided you're able to find the users
1. Identify the users you want to delete
2. Identify the employee
3. Transfer id
4. then delete user
depending on the table, you could use SQL to a large update provided you're able to find the users
UPDATE employees LEFT OUTER JOIN user ON "{your condition}" SET employee.foreign_key = user.foreign_key WHERE {condition}
I know it's not an exact answer but might point you in the right diraction
To give more context:
I have a users table
Then i have the following tables that also the user_id column
Courses
Notes
Comments
Questions
Answers
What I want to be able to do is. If a member of the team leaves I want to be able to assign all courses, notes, comments, questions and answers over to another user that already exists.
Thanks,
Steve
I have a users table
Then i have the following tables that also the user_id column
Courses
Notes
Comments
Questions
Answers
What I want to be able to do is. If a member of the team leaves I want to be able to assign all courses, notes, comments, questions and answers over to another user that already exists.
Thanks,
Steve
Interesting. I think you could use callback for delete
class User < ActiveRecord::Base before_destroy :assign_courses private def assign_courses new_user = User.new_user_responible #some way of finding the next user responsible courses.update_all(user: new_user) end end
Then you would just create a method for each table you want to transfer.
assign_questions
You will also need to implement some scope on your User model to find the employee who is going to be assigned all the notes.
I was thinking of having a page before delete that would populate a list of users to transfer the data to and then on that action it would delete the user :)
That's a good idea. Having a step-by-step process for deletion. Then you can just capture the new user who going to get everything transferred to. Best of luck. Hope I was able to help a little