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
addtionally.
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?

Models:

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

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
end

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