aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2009-08-27 18:52:14 -0300
committerEmilio Tagua <miloops@gmail.com>2009-08-27 18:52:14 -0300
commit7cce95b25ace33e04526d4490e487a080c1f9b96 (patch)
treedfc105d13590e6d5b50d6fc689e18f77d7a750c2 /activerecord/lib/active_record/relation.rb
parentd56e987757923fa28ae90cf269707b78b744d66d (diff)
downloadrails-7cce95b25ace33e04526d4490e487a080c1f9b96.tar.gz
rails-7cce95b25ace33e04526d4490e487a080c1f9b96.tar.bz2
rails-7cce95b25ace33e04526d4490e487a080c1f9b96.zip
Add readonly support for relations.
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r--activerecord/lib/active_record/relation.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 570ba3f80d..4b53857d36 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -5,10 +5,20 @@ module ActiveRecord
def initialize(klass, relation)
@klass, @relation = klass, relation
+ @readonly = false
+ end
+
+ def readonly
+ @readonly = true
+ self
end
def to_a
- @klass.find_by_sql(@relation.to_sql)
+ records = @klass.find_by_sql(@relation.to_sql)
+
+ records.each { |record| record.readonly! } if @readonly
+
+ records
end
def each(&block)