Rails 4.1 activerecord_relation conversion to array problem

After I upgraded from rails 3.2 to 4.1.0 I am getting this error
below.

I researched that Rails 4.1 requires a conversion of an
activerecord_relation to an array using to_a. I did use to_a but looks
like rails is modifying sql output and adding a “SELECT COUNT” behind
the scenes in order to convert it to an array. Do you know how to fix
this? Is this a bug in rails 4.1.0?

def index
order_type = params[:order_type]
@oh = OrderHeader.select(“orders_header.*, users.username, users.id
as customer_id, users.email, users.phone_work, users.phone_home,
users.phone_cell”).
joins("INNER JOIN users ON users.id = orders_header.customer_id
").
where(“orders_header.order_type=’#{order_type}’ and
orders_header.customer_id=#{session[:user_id]}”).
order(“id desc”).
paginate(:per_page => 10, :page => params[:page])
return @oh.to_a
end

Mysql2::Error: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to
use near ', users.username, users.id as customer_id, users.email,
users.phone_work, users’ at line 1: SELECT COUNT(orders_header.
,
users.username, users.id as customer_id, users.email, users.phone_work,
users.phone_home, users.phone_cell) FROM orders_header INNER JOIN
users ON users.id = orders_header.customer_id WHERE
(orders_header.order_type=‘order’ and orders_header.customer_id=1)

thanks
Rod

On Friday, April 11, 2014 2:34:12 AM UTC+1, Ruby-Forum.com User wrote:

After I upgraded from rails 3.2 to 4.1 I am getting this error
below.

I researched that Rails 4.1 requires a conversion of an
activerecord_relation to an array using to_a. I did use to_a but looks
like rails is doing a select count behind the scenes. Do you know how to
fix this?

I don’t think the to_a stuff is relevant. Your pagination library
(will_paginate?) is counting the total number of entries and appears to
be
producing a bad query to do that, because of the select query. Perhaps
try
updating it?

Fred

Thanks, I did updated will_paginate gem and still the problem. Looks
like it is not compatible with rails 4.1

The last version is of 3.0.5 September 18, 2013 (34 KB) according to the
link below:
https://rubygems.org/gems/will_paginate/versionsOn

However, on rails 4.0.4 it works beautifully.

Rod

On Friday, April 11, 2014 2:34:12 AM UTC+1, Ruby-Forum.com User wrote:

After I upgraded from rails 3.2 to 4.1 I am getting this error
below.

I researched that Rails 4.1 requires a conversion of an
activerecord_relation to an array using to_a. I did use to_a but looks
like rails is doing a select count behind the scenes. Do you know how to
fix this?

I don’t think the to_a stuff is relevant. Your pagination library
(will_paginate?) is counting the total number of entries and appears to
be
producing a bad query to do that, because of the select query. Perhaps
try
updating it?

Fred

I believe Kaminari can be dropped in (uses the same verbs) and it might
work for you. (Last commit was 7 days ago, if that means anything.)

Walter

Thank you Walter, I did not know about this gem. I will check it out.

Walter D. wrote in post #1143372:

I believe Kaminari can be dropped in (uses the same verbs) and it might
work for you. (Last commit was 7 days ago, if that means anything.)

Walter

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