Rails относится к методу ассоциации undefined - PullRequest
0 голосов
/ 26 августа 2018

Привет, у меня проблема с ассоциацией рельсов. У меня есть таблица пользователей и таблица ролей. Вот мои миграции:

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 голосов
/ 26 августа 2018

Вам необходимо добавить отношение к вашей модели. В user.rb:

class User < ApplicationRecord
   belongs_to :role

   # other code
end

Он сгенерирует методы ActiveRecord, которые вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...