Paginating a find statement with :select => "distinct products.* "

My selection of products from a Products table looks like this:

# Get products on department promotion
@products = Product.find(:all,
:select => "distinct products.*",
:order => " product_id ",
:joins => " inner join category_products " +
            " on products.product_id =

category_products.product_id " +
" inner join categories " +
" on category_products.category_id =
categories.category_id ",
:conditions => [“products.on_department_promotion = ? " +
" AND categories.department_id = ?”, true, params[:id]])

When I try to substitute a pagination statement for the find
statement, for example:

@products = Product.paginate(:all,
:page => params[:page],
:select => "distinct products.*",
:order => " product_id ",
:joins => " inner join category_products " +
            " on products.product_id =

category_products.product_id " +
" inner join categories " +
" on category_products.category_id =
categories.category_id ",
:conditions => [“products.on_department_promotion = ? " +
" AND categories.department_id = ?”, true, params[:id]])

the paginage gem/plugin can’t interpret the select distinct statement
an typically gives an error like:

SQLite3::SQLException: near "*": syntax error: SELECT

count(distinct
products.*) AS count_distinct_products_all FROM products inner
join
etc., etc., etc.

Can anyone tell me how to paginate the results of the original find
statement?

Carson

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