2009-11-13 5 views
0

레일스는 SQL을 엉망으로 만들고 있습니다. 난 그냥 내 자신의 SQL을 실행할 수 있지만 프레임 워크는 이것을 처리 할 수 ​​있어야합니다. 다음레일스가 복잡한 저장시 SQL을 괴롭힘

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

과 :

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

내 생성 된 SQL은 다음과 같습니다 : 여기

은 내가 수행하려고 막아있다

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

첫 번째 선택 문이다 그러나 올바른 것으로 볼 수 있듯이, Vote_yes 값이 맞지만 Update SQL 문은 꽤 잘못되었습니다.

아이디어가 있으십니까? 감사!

답변

0

WhipSenVote 모델을 보는 것이 도움이됩니다.

당신은 또한 모델은 다음과 같습니다 decrement!

+0

를 사용할 수 있습니다 클래스 WhipSenVote <액티브 :: 자료 belongs_to : whip_sen named_scope : 수상자, 람다 {| ID | {: conditions => [ "votes_yes> votes_no AND whip_bill_id =?", id]}} end –

+0

또한 WHERE 절이 필요하기 때문에 decrement를 사용할 수 있는지 확신 할 수 없습니다. 감사. –

+0

wdecment! (: votes_no) – cgr

관련 문제