Dúvida basica com relacionamentos

Pessoal,
tenho o seguinte relacionamento 1-n:

class CategoriaDocumento < ActiveRecord::Base
 set_table_name 'tb_cad_categoria_documento'
 set_primary_key 'cad_codigo'
has_many :tipo_documentos,:class_name =>'TipoDocumento'
class TipoDocumento < ActiveRecord::Base
set_table_name 'tb_tpd_tipo_documento'
 set_primary_key 'tpd_codigo'
 belongs_to :categoria_documento,:foreign_key =>'cad_codigo',:class_name =>'CategoriaDocumento'

para recuperar os tipos de uma determinada categoria,estou tentando o seguinte:

@categoria_documento = CategoriaDocumento.find(params[:categoria_id])
@tipo_documentos =@categoria_documento.tipo_documentos

Consigo recuperar categoria,mas não seus filhos.o q estou fazendo de errado?

Rafael,

Tenta


CategoriaDocumento.find(params[:categoria_id], :include => [:tipo_documento]) 

[quote=Caike]Rafael,

Tenta

[code]

CategoriaDocumento.find(params[:categoria_id], :include => [:tipo_documento])

[/code][/quote]

Mesma coisa… :frowning:

Resolvido!

faltava apenas incluir a FK no lado "um" da associação:

 class CategoriaDocumento < ActiveRecord::Base  
 set_table_name 'tb_cad_categoria_documento'  
 set_primary_key 'cad_codigo'  
 has_many :tipo_documentos,:class_name =>'TipoDocumento',foreign_key=>'cad_codigo' 

Surgiu outra duvida…

Na view de tipos de documento,tenho um combo de categorias de documento.Este,ao ser modificado,atualiza os tipos de documento referentes a categoria:

Categoria de Documento: <%=@categoriadocumentos = CategoriaDocumento.find(:all, :order => "cad_codigo") collection_select(:categoriadocumento, :name, @categoriadocumentos, :cad_codigo, :cad_descricao,{}, {:onchange => remote_function( :url => {:action => 'filtra_tipo_pelo_id_categoria'}, :controller =>'tipo_documentos', :with=>"'categoria_id='+this.value") } ) %>

O código abaixo monta a lista de tipos de documento que uma categoria possui:

def filtra_tipo_pelo_id_categoria
  categoria_documento = CategoriaDocumento.find(params[:categoria_id]);
  tipo_documentos = categoria_documento.tipo_documentos
  lista_tipo_documentos = String.new;
  tipo_documentos.each do |tipo_documento|
  lista_tipo_documentos.concat("<tr><td>").concat(tipo_documento.tpd_descricao).concat("<br></td><tr>")
 end

    render :update do |page|
     page.replace_html 'tipos', lista_tipo_documentos,'<h1>'
   end

  end

A duvida:Como faço para,ao incluir um novo tipo de documento,eu levar em consideração a categoria de documento associada?
Já pesquisei por "nested resources" no Rails mas nao achei nada q pudesse resolver…