0
當我有一個用戶模型(設計)和已創建了HAS_ONE/belongs_to的關係的剖面模型。我想如下創建用戶時自動創建一個配置文件:質量分配問題實例化模型
class User < ActiveRecord::Base
has_many :videos, :dependent => :destroy
has_one :profile, :dependent => :destroy
after_create :create_profile
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
protected
def create_profile
Profile.create :user_id => self.id
end
end
配置文件被創建,但用戶id沒有填充。我得到一個質量分配警告關於設置:USER_ID上的配置文件,因爲我有attr_accessible上的個人資料曝光了幾場。
我不想刪除attr_accessible但不明白爲什麼設置一個字段被認爲是質量分配。我想這可能與通過散列這樣做我用盡以下作爲一種變通方法:
@profile = Profile.create
@profile.user_id = self.id
這消除了警告,但USER_ID仍然沒有得到在配置文件中設置。解決這個問題的正確方法是什麼?
任何清晰度非常感謝! :)