---
title: "Rails 6 raises ActiveModel::MissingAttributeError"
description:
  "updated_columns raises ActiveModel::MissingAttributeError when used with a
  non-existing attribute in Rails 6"
canonical_url: "https://www.bigbinary.com/blog/rails-6-raises-activemodel-missingattributeerror-when-update_columns-is-used-with-non-existing-attribute"
markdown_url: "https://www.bigbinary.com/blog/rails-6-raises-activemodel-missingattributeerror-when-update_columns-is-used-with-non-existing-attribute.md"
---

# Rails 6 raises ActiveModel::MissingAttributeError

updated_columns raises ActiveModel::MissingAttributeError when used with a
non-existing attribute in Rails 6

- Author: Amit Choudhary
- Published: March 20, 2019
- Categories: Rails 6, Rails

Rails 6 raises `ActiveModel::MissingAttributeError` when
[update_columns](https://github.com/rails/rails/commit/b63701e272) is used with
a non-existing attribute. Before Rails 6,
[update_columns](https://api.rubyonrails.org/v5.2/classes/ActiveRecord/Persistence.html#method-i-update_columns)
raised an `ActiveRecord::StatementInvalid` error.

#### Rails 5.2

```ruby

> > User.first.update_columns(email: 'amit@bigbinary.com')
> > SELECT "users".\* FROM "users" ORDER BY "users"."id" ASC LIMIT $1  [["LIMIT", 1]]
UPDATE "users" SET "email" = $1 WHERE "users"."id" = \$2 [["email", "amit@bigbinary.com"], ["id", 1]]

=> Traceback (most recent call last):
1: from (irb):8
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column "email" of relation "users" does not exist)
LINE 1: UPDATE "users" SET "email" = $1 WHERE "users"."id" = $2
^
: UPDATE "users" SET "email" = $1 WHERE "users"."id" = $2
```

#### Rails 6.0.0.beta2

```ruby

> > User.first.update_columns(email: 'amit@bigbinary.com')
> > SELECT "users".\* FROM "users" ORDER BY "users"."id" ASC LIMIT ? [["LIMIT", 1]]

Traceback (most recent call last):
1: from (irb):1
ActiveModel::MissingAttributeError (can't write unknown attribute `email`)
```

Here is the relevant [commit](https://github.com/rails/rails/commit/b63701e272).

## Links

- [Human page](https://www.bigbinary.com/blog/rails-6-raises-activemodel-missingattributeerror-when-update_columns-is-used-with-non-existing-attribute)
