2012-07-15 50 views
4

我有以下型号:Friendly_id利用价值belongs_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,如此看来教授对象不知道什么是自己的相关用户。

如何解决这个任何提示?

+0

尝试'self.professor.create',而不是'self.professor = Professor.create' – 2012-07-26 21:43:37

回答

0

你并不需要:

def create_professor 
    self.professor = Professor.create 
    end 

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

+0

我跟着上面的程序和我收到错误 - 无法找到ID = XYZ简介 – Adt 2015-01-16 16:40:11