1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Read-Only Models as a rails til

This commit is contained in:
jbranchaud
2016-06-10 08:21:43 -05:00
parent e3a43d21a9
commit 1f14a12fc9
2 changed files with 25 additions and 1 deletions

View File

@@ -7,7 +7,7 @@ variety of languages and technologies. These are things that don't really
warrant a full blog post. These are mostly things I learn by pairing with warrant a full blog post. These are mostly things I learn by pairing with
smart people at [Hashrocket](http://hashrocket.com/). smart people at [Hashrocket](http://hashrocket.com/).
_431 TILs and counting..._ _432 TILs and counting..._
--- ---
@@ -278,6 +278,7 @@ _431 TILs and counting..._
- [Params Includes Submission Button Info](rails/params-includes-submission-button-info.md) - [Params Includes Submission Button Info](rails/params-includes-submission-button-info.md)
- [Perform SQL Explain With ActiveRecord](rails/perform-sql-explain-with-activerecord.md) - [Perform SQL Explain With ActiveRecord](rails/perform-sql-explain-with-activerecord.md)
- [Pretend Generations](rails/pretend-generations.md) - [Pretend Generations](rails/pretend-generations.md)
- [Read-Only Models](rails/read-only-models.md)
- [Rescue From](rails/rescue-from.md) - [Rescue From](rails/rescue-from.md)
- [Retrieve An Object If It Exists](rails/retrieve-an-object-if-it-exists.md) - [Retrieve An Object If It Exists](rails/retrieve-an-object-if-it-exists.md)
- [Select A Select By Selector](rails/select-a-select-by-selector.md) - [Select A Select By Selector](rails/select-a-select-by-selector.md)

23
rails/read-only-models.md Normal file
View File

@@ -0,0 +1,23 @@
# Read-Only Models
Are you in the midst of a big refactoring that is phasing out an
`ActiveRecord` model? You may not be ready to wipe it from the project, but
you don't want it accidentally used to create any database records. You
essentially want your model to be read-only until it is time to actually
delete it.
This can be achieved by adding a `readonly?` method to that model that
always returns `true`.
```ruby
def readonly?
true
end
```
`ActiveRecord`'s underlying persistence methods always check `readonly?`
before creating or updating any records.
[source](http://stackoverflow.com/questions/5641410/is-there-an-easy-way-to-make-a-rails-activerecord-model-read-only)
h/t Josh Davey