Rails update_属性未命中mysql数据库
这只发生在生产中,当我们通过浏览器更新一些记录时,更改没有保存。这似乎不是缓存问题,因为我们验证了mysql中的数据仍然是旧数据。然而,控制器确实被击中并返回flash消息,就好像更改成功一样 但是,我们可以在rails控制台或mysql中手动进行更改,而不会出现任何问题 知道为什么会这样吗Rails update_属性未命中mysql数据库,mysql,ruby-on-rails,ruby,ssl,Mysql,Ruby On Rails,Ruby,Ssl,这只发生在生产中,当我们通过浏览器更新一些记录时,更改没有保存。这似乎不是缓存问题,因为我们验证了mysql中的数据仍然是旧数据。然而,控制器确实被击中并返回flash消息,就好像更改成功一样 但是,我们可以在rails控制台或mysql中手动进行更改,而不会出现任何问题 知道为什么会这样吗 顺便说一句,我们最近将站点重新配置为使用SSL,这可能与此有关。是否存在任何可能阻止保存模型的因素 确保设置属性并保存模型的一种方法是使用异常引发版本,该版本可以帮助解决以下问题: def update
顺便说一句,我们最近将站点重新配置为使用SSL,这可能与此有关。是否存在任何可能阻止保存模型的因素 确保设置属性并保存模型的一种方法是使用异常引发版本,该版本可以帮助解决以下问题:
def update
@model = Model.find(params[:id])
@model.update_attributes(params[:model])
redirect_to(model_path(@model))
end
这可以改进为更可靠的方法:
def update
@model = Model.find(params[:id])
# Use exception-throwing update_attributes!
@model.update_attributes!(params[:model])
redirect_to(model_path(@model))
rescue ActiveRecord::RecordNotFound
render(:partial => 'not_found')
rescue ActiveRecord::RecordInvalid
# Delegate back to edit action, something's invalid
edit
render(:action => 'edit')
end
在某些情况下,更新_属性可能无法成功保存
如果您可以使用相同的方法对相同的数据执行相同的更新,那么这很奇怪。如果您可以提及:Rails版本、MySQL版本、post控制器代码、保存模型时运行的任何其他代码(保存前、任何观察者等),这可能会有所帮助。将代码粘贴到更新记录的位置…可能是您已经离开并且attr_受保护/attr_访问器已访问您的模型。您的模型
是否已更改?
在保存之前?