# Rails: ActiveRecord::ReadOnlyRecord: Order is marked as readonly

**Code:** `ActiveRecord::ReadOnlyRecord` · **Category:** Ruby / Rails · **Seen on:** Ruby

You tried to save a record that was loaded as read-only (e.g. via `joins` in old Rails or `readonly` scope).

## Meaning

Records loaded with `readonly` or `.readonly(true)` can't be saved. In Rails < 4 `joins` implied readonly; use `includes`/`select`. Check `readonly?`, `attr_readonly`, and `self.readonly?` overrides (e.g. database views). Reload the record via `Order.find(id)` for writes.

## Common causes

- `.readonly` scope applied
- Model backed by a view with `readonly?` true
- `attr_readonly` attribute updated
- Records from `joins`/`select` custom queries
- `ReadOnlyRecord` override

## Quick fix

1. `Order.find(order.id).update!(...)` to get a writable copy
2. Remove `.readonly` or override `readonly?`
3. Don't update `attr_readonly` columns

## Detailed fix by platform

### Rails

1. `order.readonly? # => true`

## How to diagnose

1. **Source** — readonly scope?
2. **Model** — View-backed?
3. **Column** — attr_readonly?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/ruby/activerecord-readonlyrecord)
