Неопределенный метод `create 'для nil: NilClass - PullRequest
0 голосов
/ 06 мая 2018

Я создаю проект, но всякий раз, когда я пытаюсь create grade для Class student, используя current_user.grade.create() или current_user.create_grade(), получаю сообщение об ошибке "неопределенный метод create для nil class"

Мой код выглядит следующим образом.

Student.rb

class Student < User

  has_one :user_grade , dependent: :destroy, foreign_key: 'user_id'
  has_one :grade , through: :user_grade

end

Grade.rb

class Grade < ApplicationRecord

  has_many :user_grades, dependent: :destroy
  has_many :admins, through: :user_grades

  has_many :teachers, through: :user_grades

  has_many :students , through: :user_grades

  has_many :guardians, through: :user_grades

  has_many :posts, dependent: :destroy

  validates_presence_of :cls

end

user_grade.rb

class UserGrade < ApplicationRecord

  belongs_to :grade
  belongs_to :admin, optional: true, class_name: 'Admin', foreign_key: 'user_id'
  belongs_to :teacher, optional: true, class_name: 'Teacher', foreign_key: 'user_id'
  belongs_to :student, optional: true, class_name: 'Student', foreign_key: 'user_id'
  belongs_to :guardian, optional: true, class_name: 'Guardian', foreign_key: 'user_id'


end

1 Ответ

0 голосов
/ 06 мая 2018

Попробуйте использовать current_user.grade = Grade.new({}). Затем вызов current_user.save сохранит связь и сохранит новую Grade.

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