我有兩個模型用戶和配置文件。
我想將用戶名和密碼保存在配置文件中的用戶和其他用戶配置文件詳細信息中。
現在,
用戶模型具有:在Rails3中嵌套模型
has_one :profile
accepts_nested_attributes_for :profile
attr_accessible :email, :password
輪廓模型具有
belongs_to :user
attr_accessible :bio, :birthday, :color
用戶控制器已經
def new
@user = User.new
@profile = @user.build_profile
end
def create
@user = User.new(params[:user])
@profile = @user.create_profile(params[:profile])
if @user.save
redirect_to root_url, :notice => "user created successfully!"
else
render "new"
end
end
視圖new.html.erb具有用於字段用戶和配置文件。
然而,當我運行這個Web應用程序是顯示錯誤:
不能大規模指派保護的屬性:簡介
上調試它停留在@user = User.new(PARAMS [:用戶] )中創建動作
那麼,出了什麼問題?我也試過把profile_attributes放在attr_accessible中,但它沒有幫助!
請幫我找出解決方案。
嘗試刪除'@profile = @ user.create_profile(params [:profile])'行。你不需要它。 – 2012-08-13 06:28:25
它看起來像你想要傳遞給@profile的配置文件實際上是用戶參數,因此你的用戶表單有問題 – megas 2012-08-13 06:35:13
這告訴我你的視圖有問題。你的params散列應該有一個':profile_attributes'而不是':profile'鍵。批量分配失敗,因爲您沒有'profile'屬性並且無法訪問。如果您在視圖中調用fields_for,請確保將它傳遞給配置文件的模型。可能是'@profile'或'@user.profile',而不是簡單的字符串或符號。 – Joeyjoejoejr 2012-08-13 07:24:36