Ruby on rails 3 Rails 3.2保存后更新属性

Ruby on rails 3 Rails 3.2保存后更新属性,ruby-on-rails-3,after-save,Ruby On Rails 3,After Save,我想在保存数据后更新数据库中的特定属性 例如,我的表中有一列名为pending,它是一个布尔值。我想在保存数据时将此值设置为true after_save :do_something private def do_something self.update_column(:pending, true) end 这不管用。这里有解决方案的人吗?您可以直接修改属性,如: after_save { |user| user.username = user.username.downcase }

我想在保存数据后更新数据库中的特定属性

例如,我的表中有一列名为pending,它是一个布尔值。我想在保存数据时将此值设置为true

after_save :do_something

private
def do_something
  self.update_column(:pending, true)
end

这不管用。这里有解决方案的人吗?

您可以直接修改属性,如:

after_save { |user| user.username = user.username.downcase }

请在提交后而不是保存后重试。它将在保存事务之外运行。

为什么不在保存之前尝试?此alos不起作用只需在其中写入self.pending=true。您需要将attr\u accessor:pending添加到模型中。当我在保存之前使用此选项时,效果很好。谢谢