2013-07-11 2 views
1

단일 쿼리에서 다른 필드를 사용하여 필드를 업데이트하는 방법은 무엇입니까?활성 레코드를 사용하여 업데이트

SQL :

"UPDATE table_name SET field1=fields2 + 1 where id=123" 

이런 일을 시도하지만,

Model.update(123, :field => "field2 + 1") 
Model.update(123, :field => :field2 + 1) 
Model.update(123, "field = field2 + 1") 

2 쿼리에서 그것을 할 싶지 않아 작동하지 않았다.

+0

Model.update (123, 필드 1 : "# {FIELD2 + 1}") 시도하고 당신이 모델에 액세스 할 수 있는지 확인 속성 – BuDen

+0

@BuDen이 작동하지 않습니다. –

답변

1
Model.update_all("field = field2 + 1", {:id => 123}) 

두 번째 인수는 업데이트가 발생해야하는 조건이다

+0

"NoMethodError : 정의되지 않은 메소드 '+'for : field2 : Symbol" –

+0

쿼리를 업데이트했습니다. – Santhosh

+0

을 확인하십시오. 감사. –

관련 문제