method
attr_readonly
v7.1.3.2 -
Show latest stable
-
1 note -
Class: ClassMethods
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (0)
- 4.1.8 (0)
- 4.2.1 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (0)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (38)
- 7.1.3.2 (23)
- 7.1.3.4 (0)
- What's this?
attr_readonly(*attributes)
public
Attributes listed as readonly will be used to create a new record. Assigning a new value to a readonly attribute on a persisted record raises an error.
By setting config.active_record.raise_on_assign_to_attr_readonly to false, it will not raise. The value will change in memory, but will not be persisted on save.
Examples
class Post < ActiveRecord::Base attr_readonly :title end post = Post.create!(title: "Introducing Ruby on Rails!") post.title = "a different title" # raises ActiveRecord::ReadonlyAttributeError post.update(title: "a different title") # raises ActiveRecord::ReadonlyAttributeError
Register or
log in
to add new notes.
zubin -
September 9, 2015
1 thank
Warning: prevents persistence but doesn't prevent setting
For example:
class Widget < ActiveRecord::Base attr_readonly :key end w = Widget.create! key: 'foo' w.update! key: 'bar' w.key #=> 'bar' w.reload.key #=> 'foo'