0

您如何使用用户(设计存储电子邮件和密码)来属于_to Profile 和 Profile has_one User?当我查找数据库 profile_int 仍然是 nil 嗯...不知道我在哪里做错了?

class User < ActiveRecord::Base
 # Include default devise modules. Others available are:
 # :token_authenticatable, :confirmable,
 # :lockable, :timeoutable and :omniauthable
    devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

 # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :profile_id
 # attr_accessible :title, :body

  belongs_to :profile
end


class Profile < ActiveRecord::Base
 attr_accessible :dob, :firstName, :lastName, :school_id, :schYear, :user_attributes


 belongs_to :school
 has_one :user
 accepts_nested_attributes_for :user

end

我知道通常我应该做类似 Profile.create(.......) 的事情,但如果我用设计来做,我不确定在哪里做

4

2 回答 2

0

应该:schoolstrong text是':schoolstrong_text'?你跑了rake db:migrate吗?

此外,检查您的架构也可能会有所帮助。

于 2013-06-17T00:23:11.627 回答
0

User将设计与模型相关联的一种常见做法Profile是使配置文件成为用户的子项:

# app/models/user.rb
class User < ActiveRecord::Base
    has_one :profile
end

# app/models/profile.rb
class Profile < ActiveRecord::Base
    belongs_to :user
end

然后,在您的User模型中,您将创建一个after_create挂钩来创建一个新Profile模型并将其与新创建的用户相关联:

# app/models/user.rb
after_create :create_profile

def create_profile
    profile = Profile.create
    self.profile = profile
    self.save
end
于 2013-06-17T01:02:19.023 回答