This project is archived and is in readonly mode.
has_one with a belongs_to as source association
Reported by José Valim | June 12th, 2009 @ 08:35 PM | in 2.x
This patches allow you to use a has_one association with a belongs_to as source. Assuming that House belongs to City that belongs to Country:
class House
belongs_to :city
has_one :country, :through => :city
end
class City
belongs_to :country
end
class Country
end
The following works in Rails current versions (preload case):
House.all(:include => :country)
The following DOES NOT work on Rails current version and is fixed by this patch (non-preload case):
House.all(:include => :country, :conditions => ["countries.name = ?", "Brazil"])
However, as I talked with Pratik and Koz on IRC, we could simply do this:
House.all(:include => { :city => :country }, :conditions => ["countries.name = ?", "Brazil"])
I've created the patch because I've needed this behavior in geokit-rails, which was later fixed to work with the { :city => :country } case, but currently it has no use and it should not be applied until someone comes up with a use case for it.
This ticket is just to document the patch.
Comments and changes to this ticket
-
José Valim August 8th, 2009 @ 12:11 PM
- State changed from new to wontfix
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>