Friendly_id使用belongs_to关联的值

Nob*_*ita 5 ruby-on-rails associations friendly-id after-create

我有以下型号:

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
Run Code Online (Sandbox Code Playgroud)

create_professor调用时,因此执行传递给Professor模型(self.professor = Professor.create),当它尝试在此方法中创建slug时:

def first_name
  user.first_name 
end
Run Code Online (Sandbox Code Playgroud)

我得到了一个undefined method first_name for nil:NilClass,所以教授对象似乎不知道他的相关用户是什么.

关于如何解决这个问题的任何提示?

jua*_*tas 0

你不需要:

  def create_professor
    self.professor = Professor.create 
  end
Run Code Online (Sandbox Code Playgroud)

由于 create_professor 是由您的协会创建的。