Rails属于未定义的关联方法

时间:2018-08-26 00:16:59

标签: ruby-on-rails ruby

嗨,我与Rails协会有问题。我有表用户和表角色。这是我的迁移:

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

当我创建一个具有以前创建的角色的用户时遇到问题

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

User.create(email: 'a@b.com', password: 'abcdefg', role_id: 1)

当我尝试执行User.first.role时,我发现方法角色未定义。据我所知,当我这样做时,我应该获得一个活跃的角色记录。

我做错了。请帮助

1 个答案:

答案 0 :(得分:2)

您需要将关系添加到模型中。在user.rb中:

class User < ApplicationRecord
   belongs_to :role

   # other code
end

它将生成您要查找的ActiveRecord方法。