Friendly_id с использованием значения из ассоциации own_to

У меня есть следующие модели:

class User < ActiveRecord::Base
  extend FriendlyId
  friendly_id :first_name, :use => :slugged

  has_one :professor
  after_create :create_professor

  def create_professor
    self.professor = Professor.create 
  end

end 

class Professor < ActiveRecord::Base
  extend FriendlyId
  friendly_id :first_name, :use => :slugged

  belongs_to :user
  def first_name
    user.first_name 
  end

end

В то время, когда create_professor называется и поэтому исполнение переходит к модели профессора (self.professor = Professor.create), когда он пытается создать слаг в этом методе:

def first_name
  user.first_name 
end

Я получаю undefined method first_name for nil:NilClassТак что, кажется, объект "Профессор" не знает, кто является его ассоциированным пользователем.

Любые советы о том, как решить эту проблему?

1 ответ

Решение

Вам не нужно:

  def create_professor
    self.professor = Professor.create 
  end

Так как create_prof оресурс создан вашей ассоциацией.

Другие вопросы по тегам