2013-07-29 3 views
0

요청을 받으면 nil으로 날짜를 변경하려고 시도하지만 작동하지 않습니다. 데이터베이스에 저장하지 않습니다.레일 업데이트에서 param을 업데이트하는 방법

+0

나는 내 친구와 이야기를 나에게 모델에서이 확인을 제안합니다. 글쎄, 모델에 새 유효성 검사를 추가하십시오. self.respondido가 아닌 경우 self.data_resposta = nil; end – Adley

답변

0

변경 한 경우 저장해야합니다.

@solicitacao.save 

은 부울을 반환합니다, 그래서가 발생하는 경우 오류를 처리 할 수 ​​있습니다.

+0

사실 [update_attributes] (http://apidock.com/rails/ActiveResource/Base/update_attributes)는 속성을 업데이트 할뿐만 아니라 "레코드를 저장하도록 요청합니다." OP가'update_attributes' 대신'save'를 사용해야한다고 암시 했습니까? –

+0

이 마음에 드십니까? http://pastie.org/8189840 ... 여전히 작동하지 않습니다. 데이터베이스에 저장하지 않습니다. – Adley

0

난 당신이 뭔가를 시도 할 수 있습니다 생각, 실패하면 그 false를 반환 update_attributes 알고 :

def update 
@solicitacao = Solicitacao.find(params[:id]) 
if @solicitacao.respondido == false && @solicitacao.update_attributes(:data_resposta => nil) 
    redirect_to(@solicitacao, :notice => 'Solicitacao atualizada.') 
else 
    render :action => "edit" 
end 
end 
0

당신이 update_attributes를 사용하여 다음 if @solicitacao.respondido == false를 호출 할 때 @solicitacao 값을 업데이트하는 데이터베이스의 현장을 확인하고 일을 params[:solicitacao] 매개 변수로 저장하십시오. 따라서 값이 params[:solicitacao]이 아니기 때문에 변경 한 내용은 저장되지 않습니다. 당신은 당신이 params[:solicitacao]에 필요한 변경해야

nil에 필드 data_resposta을 변경 한 다음 그것을 작동합니다.

반면에 model.errors을 사용하면 잘못 된 부분을 볼 수 있습니다. update_attributes 실제로 작동하기 때문에 나는 당신이 오류를 얻을 것이라고 생각하지 않습니다. 그것은 당신이 저장하고 싶지 않은 것입니다.

+0

하지만 atributte data_respota 만 변경하고 저장하고 있습니까? 또는 모든 양식? – Adley

+0

모든 형태 여야합니다. params [: solicitacao]의 내용을 확인하십시오. –

+0

나는 잃어 버렸습니다. 이미 데이터베이스에 저장된 내용을 확인하는 이유는 무엇입니까? 'params [: solicitacao] [: data_resposta]를 확인하지 않으시겠습니까? –