Skip to main content

How do I prepopulate table data for a new registered user?

Rails • Asked by Alex R

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:

  1. You can do this in the registration controller right after a successful save.
  2. 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.


Awesome! Thank you very much!


Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 22,346+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.