【问题标题】:ruby on rails after_update callback hooks issueruby on rails after_update 回调挂钩问题
【发布时间】:2012-03-13 06:47:37
【问题描述】:

在我的 Rails 应用程序中,我有 after_update 回调。但是当我的记录第一次使用 save 方法创建并使用 update_attributes 更新时,会执行此回调。

所以我想要一种方法,当它来更新方法时必须调用回调/方法,但目前它正在执行时它来创建以及更新方法。

我认为 update_attribute 内部也调用了一个保存方法,因为这个问题即将到来。

那么有什么方法可以在记录更新但未保存时调用我的钩子。

我找到了一种使用 attr_accessors 的方法,但我想要其他方法,因为维护这些标志对我的应用程序来说非常困难

【问题讨论】:

    标签: ruby-on-rails ruby callback ruby-on-rails-2


    【解决方案1】:

    这个怎么样

    after_update do |model| 
      model.name = model.name.capitalize unless model.new_record?
    end
    

    【讨论】:

      【解决方案2】:

      after_update 仅在模型更新后被调用。为了在创建模型时调用它,您必须在模型上调用 .save 之后更新其属性。 .update_attribute.update_attributes 不是模型的创建,它实际上是更新模型。 .update_attribute 在内部调用 .save 方法。调用.save 来保存模型的状态,无论是新的还是更新的。当您调用它时,ActiveRecord 会将新状态写入数据库。创建或更新模型时,总是通过.save method

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-26
        • 1970-01-01
        • 2016-11-10
        • 1970-01-01
        • 2016-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多