0

勧誘を受け取ったら、日付を に変更しようとしましたnilが、うまくいきません。データベースには保存されません。

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

3 に答える 3

0

変更した場合は、保存する必要があります。

@solicitacao.save

これはブール値を返すため、エラーが発生した場合に処理できます。

于 2013-07-29T18:57:15.213 に答える
0

あなたがしていることは、呼び出し時にデータベースのフィールドをチェックし、値をif @solicitacao.respondido == false更新してから、パラメータで保存するために使用してい ます。したがって、値が にないため、変更内容は保存されません。@solicitacaoupdate_attributesparams[:solicitacao]params[:solicitacao]

で必要なものをparams[:solicitacao]変更し、フィールドdata_respostaをに変更する必要がありますnil。そうすれば機能するはずです。

一方、model.errorsどこで問題が発生したかを確認するために使用できます。update_attributes実際に動作するため、エラーは発生しないと思います。それはあなたが救いたかったものではありません。

于 2013-07-30T00:26:55.350 に答える