Ruby on rails 属性在生产中未更新
Rails版本:4.2.3 我在这里遇到了一个奇怪的情况,我认为这是一件愚蠢的事情,但我不知道为什么会发生这种情况 我收到一个URL上的post通知,类似于/accounts/payment。在处理我收到的json之后,我需要对模型帐户的一个属性进行更新。我正在做这样的事情:Ruby on rails 属性在生产中未更新,ruby-on-rails,ruby,Ruby On Rails,Ruby,Rails版本:4.2.3 我在这里遇到了一个奇怪的情况,我认为这是一件愚蠢的事情,但我不知道为什么会发生这种情况 我收到一个URL上的post通知,类似于/accounts/payment。在处理我收到的json之后,我需要对模型帐户的一个属性进行更新。我正在做这样的事情: account.update_columns(status: "delayed") 或更新属性 当地一切正常。所有测试都通过了。但由于未知原因,当此代码在生产环境中运行时,该属性不会更新 这里是生产环境中的一些日志 SQ
account.update_columns(status: "delayed")
或更新属性
当地一切正常。所有测试都通过了。但由于未知原因,当此代码在生产环境中运行时,该属性不会更新
这里是生产环境中的一些日志
SQL (1.7ms) UPDATE "accounts" SET "status" = 'delayed' WHERE "accounts"."type" IN ('StandardAccount') AND "accounts"."id" = $1 [["id", 94]]
Account.find(94).status
Account Load (0.7ms) SELECT "accounts".* FROM "accounts" WHERE "accounts"."id" = $1 LIMIT 1 [["id", 94]]
=> "actived"
提前谢谢
更新1
我的模式模式是:
StandardAccount < Account
standardcount
更新2
不是Rails的问题。我在accounts表中涉及的DB上发现了一个触发器,并导致了问题。可能生产中id为94的帐户不是
StandardAccount
类型。在这两种环境中,Account.find(94).type
返回给您的是什么?您好@MurifoX。两种环境中的类型相同Account.find(94)。如果在生产控制台上运行Account.update_列(状态:“延迟”)
,它是否返回一些ActiveRecord
错误,或者是否更新状态
?您的模型或验证中可能有某种筛选器失败。请检查帐户的返回值。更新列(状态:“延迟”)
或使用更新属性
如果记录未保存,则会引发异常。@在生产控制台上,一切正常。