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 оресурс создан вашей ассоциацией.