5

私は次のモデルを持っています:

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ので、Professorオブジェクトは関連するユーザーが何であるかを知らないようです。

これを解決するためのヒントはありますか?

4

1 に答える 1

0

あなたは必要ありません:

  def create_professor
    self.professor = Professor.create 
  end

create_professorはあなたの協会によって作成されているので。

于 2013-08-30T16:03:46.790 に答える