2011-08-09 2 views
0

分からない:ここでははマス割り当て警告に取得が、私は以下の質量の割り当てについて警告することにより、非常に混乱していますなぜ

WARNING: Can't mass-assign protected attributes: upload_id 

は私のアップロードモデルである:ここで

class Upload < ActiveRecord::Base 
    belongs_to :uploadable, :polymorphic => true 
    attr_accessor :crop_x, :crop_y, :crop_w, :crop_h 
    has_attached_file :photo, :styles => { :thumb => '40x40#', :medium => '150x150>', :large => '300x300>'} 

は私のユーザモデルであります

class User < ActiveRecord::Base 

    has_one :upload, :as => :uploadable 
    attr_accessible :name, :email, :password, :password_confirmation, :birthdate, :emails, :icon_id 

モデルにupload_idはありません。コントローラの更新アクションで

:私はこのエラーを取得する理由

def update 
    @user.upload = Upload.find_by_id(params[:user][:upload_id]) 
    respond_to do |format| 
     if @user.update_attributes(:user) 
     format.js 
     end 
    end 
end 

誰でも伝えることができます。アプリケーションは動作しますが、これを修正したいと思います。モデルで

+0

このリクエストでログのチャンクを投稿できますか? – Bohdan

答えて

3

、そのようなattr_accessible入力に:upload_idを追加:あなたは:upload_idは、paramsハッシュに:userの下にネストさせたい場合は、それがためにアクセス属性としてリストされる必要がある

attr_accessible :name, :email, ... :emails, :icon_id, :upload_id 

ユーザーモデル

+0

これは正解です! attr_accessibleメソッドにない属性を大量に割り当てることはできません。それは単なるセキュリティ手段です。それ以外の場合、ユーザーはhtmlを変更して、必要なすべての属性を設定できます。 –

関連する問題