ando bastante liado con este tipo de relaciones ya que no se cual es la
mejor manera de tratar con ellas.
- por un lado la relación entre las tablas se puede realizar (ejemplo
de usuarios y grupos)
modelo grupos
has_and_belongs_to_many :usuarios
modelo usuario
has_and_belongs_to_many :grupos
y una tabla intermedia usuario_grupos con usuario_id y grupo_id
- otra forma de relacionarlas ya que estoy con REST es la que he usado
y según he leÃdo en un post de la lista seria tratando la pertenencia
con un modelo mas que seria usuario_grupo
modelo grupo
has_many : usuariogrupos
has_many :users, :through => : usuariogrupos
modelo usuario
has_many :usuariogrupos
has_many :grupos, :through => : usuariogrupos
modelo usuario_grupo
belongs_to :usuario
belongs_to :grupo
¿Cuando es mejor usar una forma y cuando otra?
Con la segunda forma al hacer por ejemplo
@usuariosgrupos = UsuarioGrupo.find( :all )
@usuariosgrupos.each do |u|
Usuario.find( u.usuario_id.nombre )
Grupo.find( u.grupo_id.nombre )
¿esto no cargarÃa en exceso la base de datos ya que son muchas
consultas?
¿no se podria hacer un find del modelo usuario_grupo y obtener ya todos
los datos?
otro inconveniente que me he encontrado a sido a la hora de eliminar una
pertenencia ya que la tabla usuario_grupos no contiene un id automatico
no se puede hacer un usuario_grupo_path( id ), :method => :delete
¿esto como se puede solucionar?
Vaya liada y rollo que he soltado y que de preguntas, espero haberme
explicado bien,
Muchas gracias por la ayuda.
Un saludo.
Aitor.