I'm Sandeep, currently working at Sourcebits Technologies in Bangalore. I am a Ruby developer and an opensource enthusiast. I like to blog about Ruby, Rails & technology.
Home04 May 2012 - Bangalore, India
There’s a cool feature implemented in Rails 3.1. You can now have a nested “has many through” relationship. Here’s an example to show what I mean by a “nested hmt”:
class User < ActiveRecord::Base
has_many :memberships
has_many :organizations, :through => :memberships
# => This is not possible in Rails < 3.1
has_many :deals, :through => :organizations
def has_deals?
self.deals.any?
end
end
As you can see, organizations table here acts as the join table between users and deals, although users has a has many relationship with organizations through memberships. This nifty feature is very useful when dealing with complex relationships and you don’t have to simulate the “has many through” here.