get todos os produtos da categoria e categorias filho (trilhos, awesome_nested_set)

tendo um aplicativo de comércio eletrônico em desenvolvimento, estou tentando entender meu problema: Tenho minhas categorias realizadas através do plugin awesome_nested_set. Se eu listar meus artigos selecionando uma categoria, tudo funcionará bem, mas para alguns links, quero mostrar todos os produtos de uma categoria e os produtos de suas categorias filh

aqui é o código do controlador que funciona bem com apenas uma categoria:

   # products_controller.rb
   def index
    if params[:category]
      @category = Category.find(params[:category])
      #@products = @category.product_list
      @products = @category.products
    else
      @category = false
      @products = Product.scoped
    end
    @products = @products.where("title like ?", "%" + params[:title] + "%") if params[:title]
    @products = @products.order("created_at).page(params[:page]).per( params[:per_page] ? params[:per_page] : 25)
    @categories = Category.all
  end

A linha que comentei é um método auxiliar que me escrevi no modelo de categoria que retorna todos os produtos da categoria e suas categorias filho em uma matri

É definido da seguinte forma:

# app/models/category.rb
def product_list
  self_and_ancestors.to_a.collect! { |x| x.products }
end

Agora, quando descomentar esta linha e tentar selecionar uma categoria, meu código de controlador de produtos quebra com erros como

undefined method `order' for #<Array:0x1887c2c>

o

undefined method `page' for #<Array:0x1887c2c>

porque estou usando pedidos e paginação e ele não pode mais solicitar o arar

Alguma idéia de como obter todos os produtos em um elemento de relação ActiveRecord no meu controlador? obrigad

ATUALIZA

so quando uso o seguinte:

class Category < ActiveRecord::Base
    acts_as_nested_set

    attr_accessible :name, :description, :lft, :rgt, :parent_id   

    has_many :categorizations
    has_many :products, :through => :categorizations

    attr_accessor :product_list

    def branch_ids
      self_and_descendants.map(&:id).uniq 
    end

    def all_products
       Product.find(:all, :conditions => { :category_id => branch_ids } )
    end


end

e peça ao controlador@category.all_products Estou tendo o erro a seguir

Mysql::Error: Unknown column 'products.category_id' in 'where clause': SELECT `products`.* FROM `products` WHERE `products`.`category_id` IN (6, 8, 9)

Como obter todos os produtos com esta constelação?

UPDATE 2

Ok, então eu vou começar uma recompens

Se eu tentar:

def all_products Categorization.find (: all,: conditions => {: category_id => branch_ids}) end

Eu recebo novamenteundefined methodorder 'para # `Preciso saber como obter todos os produtos de uma relação many_to_many como uma relação ActiveRecord.

UPDATE 3

Eu coloquei o código relevante em uma essênciahttps: //gist.github.com/121123

questionAnswers(3)

yourAnswerToTheQuestion