Got a problem with has_many through

Hi,

today I’ve tried to replace one of my habtm associations with has_many
through but it just wouldn’t work. I’m sort of desperate, since I
really don’t have a clue what the problem is.

Maybe someone’s got the time and patience to cast an eye on this.

These are my classes:

class Role < ActiveRecord::Base
has_many :permissions
has_many :rights , :through => :permissions
end

class Right < ActiveRecord::Base
has_many :permissions
has_many :roles , :through => :permissions
end

class Permission < ActiveRecord::Base
belongs_to :rights
belongs_to :roles
end

And this is the error that comes up(using the console):

role = Role.find_first
=> #<Role:0x9c2ad68 @attributes={“name”=>“adfsadf”,
“updated_on”=>“2007-01-08 15:41:00”, “id”=>“3”, “active”=>“0”,
“created_at”=>“2007-01-08 12:34:00”}>

right = Right.find_first
=> #<Right:0x9c19554 @attributes={“updated_on”=>“2007-01-08 16:55:00”,
“id”=>“1”, “path”=>"/rights", “active”=>“0”, “created_at”=>“2007-01-08
12:34:00”}>

role.rights << right
NameError: uninitialized constant Role::Rights
from
./script/…/config/…/config/…/vendor/rails/activerecord/lib/…/…/activesupport/lib/active_support/dependencies.rb:478:in
const_missing' from ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/base.rb:1357:incompute_type’
from
./script/…/config/…/config/…/vendor/rails/activerecord/lib/active_record/reflection.rb:125:in
send' from ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/reflection.rb:125:inklass’
from
./script/…/config/…/config/…/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb:115:in
find_target' from ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:135:inload_target’
from
./script/…/config/…/config/…/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb:54:in
`<<’
from (irb):3

exit

Can anybody help me with this?

Greetings

Michael K.

today I’ve tried to replace one of my habtm associations with has_many
through but it just wouldn’t work. I’m sort of desperate, since I
really don’t have a clue what the problem is.

I had to use edge rails, apply fix for #6466, and use something like the
following extension to get push, delete, and << working properly

has_many :referees_out,
:through => :refereeships,
:source => :target_user do
def construct_join_attributes(associate)
super.merge({:connection_type => ‘R’})
end
end

–Ian