Предупреждение о массовом назначении, но не знаю почему - PullRequest
0 голосов
/ 09 августа 2011

Меня очень смущает следующее предупреждение о массовом назначении:

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

Может кто-нибудь сказать, почему я получаю эту ошибку. Приложение работает, но я бы хотел это исправить.

1 Ответ

3 голосов
/ 09 августа 2011

В модели добавьте :upload_id к входам attr_accessible, например:

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

Если вы хотите, чтобы :upload_id был вложенным в :user в хэше params,должен быть указан как доступный атрибут для модели пользователя.

...