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

知道update_attributes如果失败则返回 false,我想你可以尝试这样的事情:

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
于 2013-07-29T19:07:45.383 回答
0

您正在做的是在调用时检查数据库的字段if @solicitacao.respondido == false,更新@solicitacao值,然后使用参数update_attributes保存 params[:solicitacao]。因此,您更改的内容不会被保存,因为该值不在params[:solicitacao].

您必须更改您需要的内容params[:solicitacao],将字段更改data_respostanil,然后它应该可以工作。

另一方面,您可以使用model.errors它来查看哪里出错了。我认为您不会收到任何错误,因为它update_attributes确实有效。这不是你想要保存的。

于 2013-07-30T00:26:55.350 回答
0

如果你改变它,你需要保存它!

@solicitacao.save

这将返回一个布尔值,因此您可以在发生错误时进行处理。

于 2013-07-29T18:57:15.213 回答