sql - Counting associations where child model's attribute = x -


trying count of driver's cars when manual transmission = true. (driver has_many cars; car belongs_to driver, etc.)

my current code:

<% @driver = driver.find(1) %> <% driver.cars.where("car.manual = true").count %> 

returns error:

pg::undefinedtable: error:  missing from-clause entry table "car" line 1: ...ars"  "cars"."driver_id" = $1 , (car.m...                                                              ^ : select count(*) "cars"  "cars"."driver_id" = $1 , (car.manual= true) 

when remove ".count", seem find relationship, because prints:

#<car::activerecord_associationrelation:0x007fea6ddf4c88> 

i tried

<%= @driver.cars.where(manual = true).count %> 

but returns count of driver's cars.

i suspect problem "manual = true" syntax, i'm new writing queries i'm missing stunningly obvious. if can me figure out i'm going wrong, i'd appreciate it. (or, of course, if there's better way this.)

the driver class should declare relationship:

class driver   has_many :cars    # other things end 

and then, have pass hash where conditions:

 <%= @driver.cars.where(manual => true).count %> 

or using new ruby hash syntax:

<%= @driver.cars.where(manual: true).count %> 

you can debug query being sent database with

<%= @driver.cars.where(manual: true).to_sql %> 

Comments

Popular posts from this blog

php - Submit Form Data without Reloading page -

linux - Rails running on virtual machine in Windows -