ActiveRecord :conditions with .attributes

D

dkmd_nielsen

Thanks for any help and suggestions. I'm having troubles with the
following not working. It generates a "miss value for :OCRACR in
OCRACR = :OCRACR..." error.

slct = "OCRACR = :OCRACR and MSG = :MSG and KEYCODE = :KEYCODE and
VERSION = :VERSION and DEPTH = :DEPTH "

unq_rows = Entry.find_by_sql(
"select distinct #{flds} from entries "
).each {|e|
o = Entry.find:)all,:conditions => [slct,e.attributes])
puts o.length
}

When I do "pp e.attributes", it displays the following hash:

{"OCRACR"=>"O", "MSG"=>"", "KEYCODE"=>"212260", "VERSION"=>"01",
"DEPTH"=>"001"}

Shouldn't the find :conditions be ok? The slct string appears
formatted ok. The .attributes hash appears to match the :conditions
string. I'm at a loss for what I am doing incorrectly.

Thanks again,
dvn
 
D

dkmd_nielsen

Thanks for any help and suggestions.  I'm having troubles with the
following not working.  It generates a "miss value for :OCRACR in
OCRACR = :OCRACR..." error.

slct = "OCRACR = :OCRACR and MSG = :MSG and KEYCODE = :KEYCODE and
VERSION = :VERSION and DEPTH = :DEPTH "

unq_rows = Entry.find_by_sql(
   "select distinct #{flds} from entries "
).each {|e|
   o = Entry.find:)all,:conditions => [slct,e.attributes])
   puts o.length

}

When I do "pp e.attributes", it displays the following hash:

{"OCRACR"=>"O", "MSG"=>"", "KEYCODE"=>"212260", "VERSION"=>"01",
"DEPTH"=>"001"}

Shouldn't the find :conditions be ok?  The slct string appears
formatted ok.  The .attributes hash appears to match the :conditions
string.  I'm at a loss for what I am doing incorrectly.

Thanks again,
dvn

And I'll follow this up with the following that does function:

unq_rows = Entry.find_by_sql(
"select distinct #{flds} from entries "
).each {|e|
slct = ""
e.attributes.each {|key,value|
slct << "#{key} = '#{value}' and " if key != 'id'
}
o = Entry.find:)all,:conditions => slct[0,slct.length-4] )
puts "#{e.KEYCODE} #{o.length}"
}

I'm sure the error is related to :KEYCODE versus 'KEYCODE' in the hash
key.

Let me ask a simpler question: What is the easiest method for getting
the COUNT of rows for each distinct set of column values. In the
above case, I want to get the count of rows for each unique
combination of column values. Is there a simpler sql solution?

Thanks again for any responses,
dvn
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top