Friendly_id使用belongs_to关联的值

时间:2012-07-15 01:29:14

标签: 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

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

def first_name
  user.first_name 
end

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

有关如何解决此问题的任何提示?

1 个答案:

答案 0 :(得分:0)

您不需要:

  def create_professor
    self.professor = Professor.create 
  end

由于create_professor是由您的关联创建的。