я извлекал массовую уязвимость присваивания ниже линии:Сильные PARAMS в рельсах
friend = Friend.find(params[:id])
friend.update_attributes(params[:name])
переписав его как:
friend = Friend.find(params[:id])
friend.update_attributes(params.permit(:name))
Но это дало мне эту ошибку:
ActiveModel::MassAssignmentSecurity::Error (Can't mass-assign protected attributes for Friend: name):
Unpermitted parameters: id
Любая идея, почему я получаю эту ошибку?
Edit :
Я добавил attr_accessible :status_id
и params.permit(:id, :name)
и ошибка был удален. Но добавляет attr_accessible
правильный способ сделать это, поскольку мы пишем сильные параметры, чтобы удалить эту строку, не так ли?
У вас есть 'attr_accessible' в вашей модели? –
Показать 'params.inspect'. Убедитесь, что вы проверяете правильную часть кода - возможно, вы редактируете метод обновления, но запускаете метод создания. – Astery
'params.permit (: name,: id)' –