instance method setup_fixture_accessors

Ruby on Rails 3.0.20

Since v2.3.18

Available in: v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

setup_fixture_accessors(table_names = nil)

No documentation comment.

Parameters

table_names opt = nil
Source
# File activerecord/lib/active_record/fixtures.rb, line 893
      def setup_fixture_accessors(table_names = nil)
        table_names = Array.wrap(table_names || fixture_table_names)
        table_names.each do |table_name|
          table_name = table_name.to_s.tr('./', '_')

          redefine_method(table_name) do |*fixtures|
            force_reload = fixtures.pop if fixtures.last == true || fixtures.last == :reload

            @fixture_cache[table_name] ||= {}

            instances = fixtures.map do |fixture|
              @fixture_cache[table_name].delete(fixture) if force_reload

              if @loaded_fixtures[table_name][fixture.to_s]
                @fixture_cache[table_name][fixture] ||= @loaded_fixtures[table_name][fixture.to_s].find
              else
                raise StandardError, "No fixture with name '#{fixture}' found for table '#{table_name}'"
              end
            end

            instances.size == 1 ? instances.first : instances
          end
          private table_name
        end
      end

Defined in activerecord/lib/active_record/fixtures.rb line 893 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::TestFixtures::ClassMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close