2010-12-04 19 views
5
class Membership < ActiveRecord::Base 
    belongs_to :role 
    belongs_to :user 
end 

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

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

y mi VerNo se pudo encontrar la asociación, los carriles 3

<% for role in Role.find(:all) %> 
     <div> 
     <%=check_box_tag "user[role_ids][]", role.id, @user.roles.include?(role) %> 
     <%=role.name%> 
     </div> 
    <% end %> 

Tengo siguiente error en mi Vista - No se pudo encontrar la asociación: la pertenencia en el modelo de usuario y no puedo entender por qué esto se pasa ..

Respuesta

15

es necesario indicar explícitamente has_many :memberships, así:

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

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

Agregue eso, y debe estar en funcionamiento.

+0

gracias, eres el hombre! – paxer

0

he encontrado la razón,

Voy a tener que añadir

has_many :memberships 

a mis modelos de usuarios y roles.

¡Gracias de todos modos! :)

+1

um..La respuesta de Sam Ritchie muestra que ya – Zabba

Cuestiones relacionadas