在我的Rails项目中,我使用Postgresql。Rails update_attributes不适用于Postgresql
User.find_by_sql("update users set address = '#{params[:address]}' where id = #{current_user.id}")
此代码工作正常,但等效的ActiveRecord不工作:
user = User.find(current_user.id)
user.update_attributes(:address => params[:address])
它总是显示在日志Begin; Rollback
。 你能解释一下为什么会发生这种情况?有没有与Postgres相关的问题? 我使用Rails 3.2
编辑
我发现在那里我错了...验证失败是造成这一点。 解决方法是:
user.update_column(:address,params[:address])
这将绕过验证。 谢谢你们的帮助。
你能告诉你的用户模型吗? – edralph