当我收到邀请时,我会尝试将我的日期更改为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
答案 0 :(得分:0)
如果更改它,则需要保存!
@solicitacao.save
这将返回一个布尔值,因此如果发生错误,您可以处理错误。
答案 1 :(得分: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
答案 2 :(得分:0)
您正在做的是在调用if @solicitacao.respondido == false
,更新@solicitacao
值,然后使用update_attributes
保存params[:solicitacao]
参数时检查数据库的字段。因此,您更改的内容将不会保存,因为该值不在params[:solicitacao]
。
您必须在params[:solicitacao]
中更改所需内容,将字段data_resposta
更改为nil
,然后才能生效。
另一方面,您可以使用model.errors
查看出错的位置。我不认为你会收到任何错误,因为update_attributes
确实有效。这不是你想要保存的东西。