【问题标题】:Check if Active Record table has changed检查 Active Record 表是否已更改
【发布时间】:2017-07-01 20:32:43
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails activerecord sinatra activemodel


    【解决方案1】:

    您可以使用模型内部的回调来检查表条件是否已更改,例如如果要更改添加的记录,请点击此处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
    

    【讨论】:

      【解决方案2】:

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

      就像您可以通过在您的 create 方法中调用 create notification 来在用户创建通知时创建通知一样。

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

      并寻找桌子数量或大小的变化

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-20
        • 2013-06-14
        • 2018-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多