요청을 받으면 nil
으로 날짜를 변경하려고 시도하지만 작동하지 않습니다. 데이터베이스에 저장하지 않습니다.레일 업데이트에서 param을 업데이트하는 방법
답변
변경 한 경우 저장해야합니다.
@solicitacao.save
이
은 부울을 반환합니다, 그래서가 발생하는 경우 오류를 처리 할 수 있습니다.사실 [update_attributes] (http://apidock.com/rails/ActiveResource/Base/update_attributes)는 속성을 업데이트 할뿐만 아니라 "레코드를 저장하도록 요청합니다." OP가'update_attributes' 대신'save'를 사용해야한다고 암시 했습니까? –
이 마음에 드십니까? http://pastie.org/8189840 ... 여전히 작동하지 않습니다. 데이터베이스에 저장하지 않습니다. – Adley
난 당신이 뭔가를 시도 할 수 있습니다 생각, 실패하면 그 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
당신이 update_attributes
를 사용하여 다음 if @solicitacao.respondido == false
를 호출 할 때 @solicitacao
값을 업데이트하는 데이터베이스의 현장을 확인하고 일을 params[:solicitacao]
매개 변수로 저장하십시오. 따라서 값이 params[:solicitacao]
이 아니기 때문에 변경 한 내용은 저장되지 않습니다. 당신은 당신이 params[:solicitacao]
에 필요한 변경해야
nil
에 필드
data_resposta
을 변경 한 다음 그것을 작동합니다.
반면에 model.errors
을 사용하면 잘못 된 부분을 볼 수 있습니다. update_attributes
실제로 작동하기 때문에 나는 당신이 오류를 얻을 것이라고 생각하지 않습니다. 그것은 당신이 저장하고 싶지 않은 것입니다.
하지만 atributte data_respota 만 변경하고 저장하고 있습니까? 또는 모든 양식? – Adley
모든 형태 여야합니다. params [: solicitacao]의 내용을 확인하십시오. –
나는 잃어 버렸습니다. 이미 데이터베이스에 저장된 내용을 확인하는 이유는 무엇입니까? 'params [: solicitacao] [: data_resposta]를 확인하지 않으시겠습니까? –
나는 내 친구와 이야기를 나에게 모델에서이 확인을 제안합니다. 글쎄, 모델에 새 유효성 검사를 추가하십시오. self.respondido가 아닌 경우 self.data_resposta = nil; end – Adley