How do I prepopulate table data for a new registered user?
I'm wondering how would one go about prepopulating certain data table for a new user? Let's say I have a table with posts and a table with likes, and when new a user registers I'd like to make it so that certain posts are automatically liked upon registration. Would appreciate any guidance and suggestion.
There's a couple options for this generally:
- You can do this in the registration controller right after a successful save.
- Or you can do this in the model after_create (which might be simplest). I'll show that one here:
class User < ApplicationRecord
has_many :likes
after_create :create_default_likes
private
def create_default_likes
# Create your likes here
[1,2,3].each do |id|
likes.create post_id: id
end
end
end
For the controller version, you'd basically do the same thing just after the if user.save
. If you use something like Devise, you'll have to override the controller to do that.