aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/fixtures.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-09-05 14:38:43 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2013-09-05 14:38:43 -0700
commitc9789d252d575853ed99e2d051cd84486c27ee5d (patch)
treeae936497f2efe3b2e1d0c292882a8f2969266885 /activerecord/lib/active_record/fixtures.rb
parent8588082aecd7dc70ffaf3b54a99184d98c259fce (diff)
downloadrails-c9789d252d575853ed99e2d051cd84486c27ee5d.tar.gz
rails-c9789d252d575853ed99e2d051cd84486c27ee5d.tar.bz2
rails-c9789d252d575853ed99e2d051cd84486c27ee5d.zip
only construct the FixtureSet with AR models
Diffstat (limited to 'activerecord/lib/active_record/fixtures.rb')
-rw-r--r--activerecord/lib/active_record/fixtures.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/fixtures.rb b/activerecord/lib/active_record/fixtures.rb
index 07a7621c40..e71cbee8d7 100644
--- a/activerecord/lib/active_record/fixtures.rb
+++ b/activerecord/lib/active_record/fixtures.rb
@@ -443,7 +443,16 @@ module ActiveRecord
end
def [](fs_name)
- @class_names[fs_name] ||= default_fixture_model(fs_name, @config).safe_constantize
+ @class_names.fetch(fs_name) {
+ klass = default_fixture_model(fs_name, @config).safe_constantize
+
+ # We only want to deal with AR objects.
+ if klass && klass < ActiveRecord::Base
+ @class_names[fs_name] = klass
+ else
+ @class_names[fs_name] = nil
+ end
+ }
end
private
@@ -574,7 +583,7 @@ module ActiveRecord
rows[table_name] = fixtures.map do |label, fixture|
row = fixture.to_hash
- if model_class && model_class < ActiveRecord::Base
+ if model_class
# fill in timestamp columns if they aren't specified and the model is set to record_timestamps
if model_class.record_timestamps
timestamp_column_names.each do |c_name|