diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2006-08-16 18:10:52 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2006-08-16 18:10:52 +0000 |
commit | 7aaf4867d2d7c1adea419052f069dab542af13b9 (patch) | |
tree | e0872074d5d610f336d72edeb34986fe4a363bbe /activerecord/test/fixtures | |
parent | 593f04e6a939caeed276b855fc7fa35655ba1204 (diff) | |
download | rails-7aaf4867d2d7c1adea419052f069dab542af13b9.tar.gz rails-7aaf4867d2d7c1adea419052f069dab542af13b9.tar.bz2 rails-7aaf4867d2d7c1adea419052f069dab542af13b9.zip |
Included associations: go deep.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4776 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/fixtures')
-rw-r--r-- | activerecord/test/fixtures/db_definitions/schema.rb | 10 | ||||
-rw-r--r-- | activerecord/test/fixtures/edge.rb | 5 | ||||
-rw-r--r-- | activerecord/test/fixtures/edges.yml | 6 | ||||
-rw-r--r-- | activerecord/test/fixtures/mixin.rb | 1 | ||||
-rw-r--r-- | activerecord/test/fixtures/vertex.rb | 9 | ||||
-rw-r--r-- | activerecord/test/fixtures/vertices.yml | 4 |
6 files changed, 35 insertions, 0 deletions
diff --git a/activerecord/test/fixtures/db_definitions/schema.rb b/activerecord/test/fixtures/db_definitions/schema.rb index a5f2c9dc10..f565b74564 100644 --- a/activerecord/test/fixtures/db_definitions/schema.rb +++ b/activerecord/test/fixtures/db_definitions/schema.rb @@ -39,4 +39,14 @@ ActiveRecord::Schema.define do t.column :author_id, :integer t.column :favorite_author_id, :integer end + + create_table :vertices, :force => true do |t| + t.column :label, :string + end + + create_table :edges, :force => true do |t| + t.column :source_id, :integer, :null => false + t.column :sink_id, :integer, :null => false + end + add_index :edges, [:source_id, :sink_id], :unique => true end diff --git a/activerecord/test/fixtures/edge.rb b/activerecord/test/fixtures/edge.rb new file mode 100644 index 0000000000..55e0c31fcb --- /dev/null +++ b/activerecord/test/fixtures/edge.rb @@ -0,0 +1,5 @@ +# This class models an edge in a directed graph. +class Edge < ActiveRecord::Base + belongs_to :source, :class_name => 'Vertex', :foreign_key => 'source_id' + belongs_to :sink, :class_name => 'Vertex', :foreign_key => 'sink_id' +end diff --git a/activerecord/test/fixtures/edges.yml b/activerecord/test/fixtures/edges.yml new file mode 100644 index 0000000000..c16c70dd2f --- /dev/null +++ b/activerecord/test/fixtures/edges.yml @@ -0,0 +1,6 @@ +<% (1..4).each do |id| %> +edge_<%= id %>: + id: <%= id %> + source_id: <%= id %> + sink_id: <%= id + 1 %> +<% end %>
\ No newline at end of file diff --git a/activerecord/test/fixtures/mixin.rb b/activerecord/test/fixtures/mixin.rb index afc976f8f1..1f200da62d 100644 --- a/activerecord/test/fixtures/mixin.rb +++ b/activerecord/test/fixtures/mixin.rb @@ -12,6 +12,7 @@ end class RecursivelyCascadedTreeMixin < Mixin acts_as_tree :foreign_key => "parent_id" + has_one :first_child, :class_name => 'RecursivelyCascadedTreeMixin', :foreign_key => :parent_id end class ListMixin < Mixin diff --git a/activerecord/test/fixtures/vertex.rb b/activerecord/test/fixtures/vertex.rb new file mode 100644 index 0000000000..f4c11144de --- /dev/null +++ b/activerecord/test/fixtures/vertex.rb @@ -0,0 +1,9 @@ +# This class models a vertex in a directed graph. +class Vertex < ActiveRecord::Base + has_many :sink_edges, :class_name => 'Edge', :foreign_key => 'source_id' + has_many :sinks, :through => :sink_edges, :source => :sink + + has_and_belongs_to_many :sources, + :class_name => 'Vertex', :join_table => 'edges', + :foreign_key => 'sink_id', :association_foreign_key => 'source_id' +end diff --git a/activerecord/test/fixtures/vertices.yml b/activerecord/test/fixtures/vertices.yml new file mode 100644 index 0000000000..8af0593f75 --- /dev/null +++ b/activerecord/test/fixtures/vertices.yml @@ -0,0 +1,4 @@ +<% (1..5).each do |id| %> +vertex_<%= id %>: + id: <%= id %> +<% end %>
\ No newline at end of file |