has_many, belongs_to relation in active record migration rails 4

rails-activerecord, rails-migrations, ruby-on-rails, ruby-on-rails-4

Solution

You could call:

rails g model task user:references

which will generates an `user_id` column in the `tasks` table and will modify the `task.rb` model to add a `belongs_to :user` relatonship. Please note, you must to put manually the `has_many :tasks` or `has_one :task` relationship to the `user.rb` model.

If you already have the model generated, you could create a migration with the following:

rails g migration AddUserToTask user:belongs_to

which will generate:

class AddUserToTask < ActiveRecord::Migration
  def change
    add_reference :tasks, :user, index: true
  end
end

the only difference with this approach is, the `belongs_to :user` relationship in the `task.rb` model won't be created automatically, so you must create it for your own.

Problem

I have a `User` model and a `Task` model. I have not mentioned any relation between them while creating them. I need to establish that `User` `has_many` `Tasks` and a `Task` `belongs_to` `User` through a migration What would be the migration generation command for establishing that relationship?

Original source