Has_many belongs_to in multiple tables

My model association looks like this

class User < ActiveRecord::Base
has_many :correlations
has_many :roles, :through => :correlations
has_many :skills, :through => :correlations
end

class Skill < ActiveRecord::Base
has_many :correlations
has_many :roles, :through => :correlations
has_many :users, :through => :correlations
end

class Role < ActiveRecord::Base
has_many :correlations
has_many :users, :through => :correlations
has_many :skills, :through => :correlations
end

class Correlation < ActiveRecord::Base
belongs_to :role
belongs_to :skill
belongs_to :user
end

ON update user each time i have two tpuples in db
for e.g

  role_id                      user_id 

skill_id
admin_id u_id Null
Null u_id
skill_id

instead of

  role_id                      user_id 

skill_id
admin_id u_id
skill_id

#users/controller

def update
@user = User.find(params[:id])

respond_to do |format|
  if @user.update_attributes(params[:user])
    format.html { redirect_to(@user, :notice => 'User was 

successfully
updated.’) }
format.xml { head :ok }
else
format.html { render :action => “edit” }
format.xml { render :xml => @user.errors, :status =>
:unprocessable_entity }
end
end
end

Please suggest

Thanks in advance

any idea on this issue ??

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs