Puzzero
Puzzero

Reputation: 63

Rails belongs to association method undefined

Hi i'm having a problem with a rails association. I have the Table Users and the table Roles. Here are my migrations:

class CreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
      t.string :email
      t.string :password_digest
      t.belongs_to :role, index: true, foreign_key: true

      t.timestamps
    end
  end
end


class CreateRoles < ActiveRecord::Migration[5.2]
  def change
    create_table :roles do |t|
      t.string :name
      t.string :code

      t.timestamps
    end
  end
end

Im having the problem when I create a user with a role that I had previously created

Role.create(name: 'Super Admin', code: 'super_admin')

User.create(email: '[email protected]', password: 'abcdefg', role_id: 1)

When I try to do User.first.role I get that the method role is undefined. As far as i know When i do that i should get an active record with the role.

What i am doing wrong. Please Help

Upvotes: 0

Views: 73

Answers (1)

Flavio Wuensche
Flavio Wuensche

Reputation: 10326

You need to add the relation to your model. In user.rb:

class User < ApplicationRecord
   belongs_to :role

   # other code
end

It will generate the ActiveRecord methods you are looking for.

Upvotes: 2

Related Questions