Rails botches the SQL on a complex save

Posted by Dan B on Stack Overflow See other posts from Stack Overflow or by Dan B
Published on 2009-11-13T20:04:36Z Indexed on 2010/05/05 5:08 UTC
Read the original article Hit count: 155

Filed under:
|
|

Hi, I am doing something seemingly pretty easy, but Rails is messing up the SQL. I could just execute my own SQL, but the framework should be able to handle this.

Here is the save I am trying to perform:

w = WhipSenVote.find(:first, :conditions => ["whip_bill_id = ? AND whip_sen_id = ?", bill_id, k])
w.votes_no = w.votes_no - 1
w.save

My generated SQL looks like this:

SELECT * 
FROM "whip_sen_votes" 
WHERE (whip_bill_id = E'1' AND whip_sen_id = 7) 
LIMIT 1

And then:

UPDATE "whip_sen_votes" 
SET "votes_yes" = 14, "updated_at" = '2009-11-13 19:55:54.807000' 
WHERE "id" = 15

The first select statement is correct, but as you can see, the Update SQL statement is pretty wrong, though the votes_yes value is correct.

Any ideas? Thanks!

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about save