【发布时间】:2017-07-01 20:32:43
【问题描述】:
在 Active Record 中,我可以写 name_changed? 来检查 name 列是否已更改。
如何检查表是否已更改? (即添加新记录)
【问题讨论】:
标签: ruby-on-rails activerecord sinatra activemodel
在 Active Record 中,我可以写 name_changed? 来检查 name 列是否已更改。
如何检查表是否已更改? (即添加新记录)
【问题讨论】:
标签: ruby-on-rails activerecord sinatra activemodel
您可以使用模型内部的回调来检查表条件是否已更改,例如如果要更改添加的记录,请点击此处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
【讨论】:
好吧,每当您的表中的记录发生更改时,它都会通过创建或发布操作进行更改..所以如果您想在添加或更新记录时执行某些操作,即表中的更改,只需在您的创建操作中执行。
就像您可以通过在您的 create 方法中调用 create notification 来在用户创建通知时创建通知一样。
或者您可以简单地在记录中使用 .size 或 .count 计算行数
并寻找桌子数量或大小的变化
【讨论】: