2009-11-19 3 views
1

으로 취급 특성 ActiveRecordError :ROR 액티브이 코드는 생성 콜백 before_update

, 문자열 평가, 블록이 호출 될 수

콜백 전화 방법을 나타내는 심볼이어야 또는 목적은 콜백 방법 응답. "

before_update :check_instock, :unless => Proc.new { |inventory| inventory.needed.nil? } 

def check_instock 
    if needed < amount 
    instock = true 
    else 
    instock = false 
    end 
end 

이 코드는 P이고 인벤토리 모델에 묶여, @ inventory.update_attributes (컨트롤러)를 호출하기 전에 일부 논리를 처리하려고합니다. 이전에는 @ inventory.update_attributes를 여러 번 호출하여 코드가 worked 인 것으로 나타났습니다 (간결하지 않더라도).

건배!

답변

1
before_update :set_instock, :unless => :inventory_not_needed? 

private 

def set_instock 
    self.instock = (needed < amount) ? true : false 
end 

def inventory_not_needed? 
    needed.nil? 
end 
관련 문제