Including join model data

I`m using the joing model Part to access Treinando from Evento.
This code works well:

@treinandos = Evento.find(params[:evento_id]).treinandos

But the parts table has some more columns I need to retrieve
Even after some docs/googling and tests I was not able to append this
information to the resulting object @treinandos.

Can you give some hints about how to do it?


class Treinando < ActiveRecord::Base
has_many :parts
has_many :eventos, :through => :parts
class Part < ActiveRecord::Base
belongs_to :treinando
belongs_to :evento
class Evento < ActiveRecord::Base
has_many :parts
has_many :treinandos, :through => :parts

Well, I found a way, but it is not a optimized (rails way) one, since
it executes a find for each “part” record, more some selects.

parts = Evento.find(params[:evento_id]).parts
@treinandos = []
parts.each do |part|
  obj = Treinando.find(part.treinando_id)
  obj[:padrinho] = part.padrinho.nome if part.padrinho_id
  obj[:presenca] = part.presenca
  @treinandos << obj

If you have any idea about the rails way to do it, please tell me.

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