Changeset 8561
- Timestamp:
- 01/05/08 02:20:57 (2 years ago)
- Files:
-
- trunk/activerecord/lib/active_record/fixtures.rb (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activerecord/lib/active_record/fixtures.rb
r8560 r8561 690 690 path = File.join(@fixture_path, file) 691 691 if File.file?(path) and file !~ @file_filter 692 self[file] = Fixture.new(path, @class_name)692 self[file] = Fixture.new(path, model_class) 693 693 end 694 694 end … … 719 719 end 720 720 721 self[name] = Fixture.new(data, @class_name)721 self[name] = Fixture.new(data, model_class) 722 722 end 723 723 end … … 732 732 data = {} 733 733 row.each_with_index { |cell, j| data[header[j].to_s.strip] = cell.to_s.strip } 734 self["#{Inflector::underscore(@class_name)}_#{i+=1}"] = Fixture.new(data, @class_name)734 self["#{Inflector::underscore(@class_name)}_#{i+=1}"] = Fixture.new(data, model_class) 735 735 end 736 736 end … … 768 768 end 769 769 770 attr_reader : class_name771 772 def initialize(fixture, class_name)770 attr_reader :model_class 771 772 def initialize(fixture, model_class) 773 773 case fixture 774 774 when Hash, YAML::Omap … … 780 780 end 781 781 782 @class_name = class_name 782 @model_class = model_class.is_a?(Class) ? model_class : model_class.constantize rescue nil 783 end 784 785 def class_name 786 @model_class.name if @model_class 783 787 end 784 788 … … 801 805 802 806 def value_list 803 klass = @class_name.constantize rescue nil804 805 807 list = @fixture.inject([]) do |fixtures, (key, value)| 806 col = klass.columns_hash[key] if klass.respond_to?(:ancestors) && klass.ancestors.include?(ActiveRecord::Base)808 col = model_class.columns_hash[key] if model_class.respond_to?(:ancestors) && model_class.ancestors.include?(ActiveRecord::Base) 807 809 fixtures << ActiveRecord::Base.connection.quote(value, col).gsub('[^\]\\n', "\n").gsub('[^\]\\r', "\r") 808 810 end … … 811 813 812 814 def find 813 klass = @class_name.is_a?(Class) ? @class_name : Object.const_get(@class_name) rescue nil 814 if klass 815 klass.find(self[klass.primary_key]) 815 if model_class 816 model_class.find(self[model_class.primary_key]) 816 817 else 817 raise FixtureClassNotFound, " The class #{@class_name.inspect} was not found."818 raise FixtureClassNotFound, "No class attached to find." 818 819 end 819 820 end