Has_many :through association not working properly

ISSUE:
The host has 3 ip addresses on two networks (#62 is repeated)
How do I get host.networks to return only the two networks?

host
=> #<NetworkHost id: 923, name: “ota-app1”, os_id: 1, feature_id: nil,
description: nil, created_at: “2010-05-18 19:05:49”, updated_at:
“2010-05-18 19:05:49”, ip_id: nil, server_id: 5, service_tag: nil,
location_id: nil, rack: nil, space: nil, net_profile_id: 77>

host.ip_addresses.size
=> 3

host.networks
=> [#<Network id: 62, name: “SCTCarrier990 Production Network”, ip:
“192.168.110.0”, …l>,
#<Network id: 62, name: “SCTCarrier990 Production Network”, ip:
“192.168.110.0”, …>,
#<Network id: 63, name: “SCTCarrier990 IP Profile Network3”, ip:
“10.10.110.0”, …>]

host.networks.size
=> 3

networks model

class Network < ActiveRecord::Base
has_many :ip_addresses, :dependent => :destroy
has_many :network_hosts, :through => :ip_addresses

network_hosts model

class NetworkHost < ActiveRecord::Base

has_many :ip_addresses, :dependent => :destroy
has_many :networks, :through => :ip_addresses

ip_addresses model

class IpAddress < ActiveRecord::Base

attr_accessible :name, :ip, :logical_interface_name_id,
:network_host_id, :network_id, :is_entry_point, :is_gateway, :mac

belongs_to :network_host
belongs_to :network

On Thu, May 27, 2010 at 10:41 AM, chewmanfoo [email protected]
wrote:

ISSUE:
The host has 3 ip addresses on two networks (#62 is repeated)
How do I get host.networks to return only the two networks?

network_hosts model

class NetworkHost < ActiveRecord::Base

has_many :ip_addresses, :dependent => :destroy
has_many :networks, :through => :ip_addresses

Wouldn’t

has_many :networks, :through => :ip_addresses, :uniq => true

do it?

Hassan S. ------------------------ [email protected]
twitter: @hassan

Yes! that’s it! thanks!

On May 27, 4:14 pm, Hassan S. [email protected]