检查 Active Record table 是否已更改

Check if Active Record table has changed

在 Active Record 中,我可以编写 name_changed? 来检查列 name 是否已更改。

如何检查 table 是否已更改? (即添加了新记录)

好吧,每当您的 table 中的记录发生更改时,它都会通过创建或 post 操作进行更改..因此,如果您想在添加或更新记录时执行某些操作,即更改 table,只需在您的创建操作中执行即可。

就像您可以在用户发表评论时通过在您的创建方法中调用创建通知来创建通知。

或者您可以简单地使用 .size 或 .count 计算记录中的行数

并寻找 table

的数量或大小的变化

您可以在模型中使用回调来检查 table 条件是否已更改,例如,如果您想更改已添加的记录,请在此处ActiveRecord Callback sequences

# app/models/model.rb
class Model < ActiveRecord::Base
  after_create :some_call

  def some_call
    puts "this is your code after record added?"
    # you can also check table condition directly from here
    puts Model.count
  end
end