diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index b91ecb109ab13031ab8ef9902c30b30315503b48..500506506a5a6a672aba9336c5c55ea8b0e58973 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -61,9 +61,7 @@ def respond_to?(method, include_private = false) def to_a return @records if loaded? - readonly = @readonly_value.nil? ? @implicit_readonly : @readonly_value - - @records = if readonly + @records = if @readonly_value IdentityMap.without do eager_loading? ? find_with_associations : @klass.find_by_sql(arel.to_sql, @bind_values) end @@ -77,6 +75,7 @@ def to_a # @readonly_value is true only if set explicitly. @implicit_readonly is true if there # are JOINS and no explicit SELECT. + readonly = @readonly_value.nil? ? @implicit_readonly : @readonly_value @records.each { |record| record.readonly! } if readonly @loaded = true