aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2008-03-21 18:09:03 +0000
committerRick Olson <technoweenie@gmail.com>2008-03-21 18:09:03 +0000
commit273b21faa911681ed4b6c748676146e0f6eed0a0 (patch)
tree7454ae8ead82fbe980c9f3630289c672f247b232 /activerecord/test/models
parentd8f76e66a19435239eec6f65f910133c6059cd60 (diff)
downloadrails-273b21faa911681ed4b6c748676146e0f6eed0a0.tar.gz
rails-273b21faa911681ed4b6c748676146e0f6eed0a0.tar.bz2
rails-273b21faa911681ed4b6c748676146e0f6eed0a0.zip
Add has_one :through support, finally. Closes #4756 [thechrisoshow]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9067 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/models')
-rw-r--r--activerecord/test/models/club.rb6
-rw-r--r--activerecord/test/models/member.rb9
-rw-r--r--activerecord/test/models/membership.rb9
-rw-r--r--activerecord/test/models/sponsor.rb4
4 files changed, 28 insertions, 0 deletions
diff --git a/activerecord/test/models/club.rb b/activerecord/test/models/club.rb
new file mode 100644
index 0000000000..171445df3e
--- /dev/null
+++ b/activerecord/test/models/club.rb
@@ -0,0 +1,6 @@
+class Club < ActiveRecord::Base
+ has_many :memberships
+ has_many :members, :through => :memberships
+ has_many :current_memberships
+ has_many :sponsors
+end \ No newline at end of file
diff --git a/activerecord/test/models/member.rb b/activerecord/test/models/member.rb
new file mode 100644
index 0000000000..688725f200
--- /dev/null
+++ b/activerecord/test/models/member.rb
@@ -0,0 +1,9 @@
+class Member < ActiveRecord::Base
+ has_one :current_membership
+ has_many :memberships
+ has_many :fellow_members, :through => :club, :source => :members
+ has_one :club, :through => :current_membership
+ has_one :favourite_club, :through => :memberships, :conditions => ["memberships.favourite = ?", true], :source => :club
+ has_one :sponsor, :as => :sponsorable
+ has_one :sponsor_club, :through => :sponsor
+end \ No newline at end of file
diff --git a/activerecord/test/models/membership.rb b/activerecord/test/models/membership.rb
new file mode 100644
index 0000000000..905f948c37
--- /dev/null
+++ b/activerecord/test/models/membership.rb
@@ -0,0 +1,9 @@
+class Membership < ActiveRecord::Base
+ belongs_to :member
+ belongs_to :club
+end
+
+class CurrentMembership < Membership
+ belongs_to :member
+ belongs_to :club
+end
diff --git a/activerecord/test/models/sponsor.rb b/activerecord/test/models/sponsor.rb
new file mode 100644
index 0000000000..50c2c2d76c
--- /dev/null
+++ b/activerecord/test/models/sponsor.rb
@@ -0,0 +1,4 @@
+class Sponsor < ActiveRecord::Base
+ belongs_to :sponsor_club, :class_name => "Club", :foreign_key => "club_id"
+ belongs_to :sponsorable, :polymorphic => true
+end \ No newline at end of file