열 (신용)의 모든 값을 지정된 양만큼 줄이는 방법이 필요합니다. 나는 시도했다 :레일의 모든 행의 db 값 감소시키기
User.all.map! {|user| user.credit -= 50}
단지 사용자가 아닌 크레딧을 매핑한다. 정답은
User.update_all(something)
을 사용하는 것입니다하지만이 방법을 사용하여 이전 값으로 상대적인 값을 업데이트하는 방법을 모르는 같은 느낌.
일반적인 요구 사항처럼 보입니다. 따라서 표준 접근 방식을 추측하고 있습니다.
User.all.each do |user|
user.credit = user.credit - 50
user.save!
end
을하지만,보다 효율적인 방법은 데이터베이스에있는 모든 행을 업데이트 할 것입니다 :
이 경우 유효성 검사와 콜백은 호출되지 않습니다. – Stefan