Ruby on rails 在Rails模型中,如果表不';不存在?

Ruby on rails 在Rails模型中,如果表不';不存在?,ruby-on-rails,ruby,activerecord,callback,Ruby On Rails,Ruby,Activerecord,Callback,我有几个数据库使用记录模型。在这个模型的保存后的回调中,我在日志表中创建了一个新行。我有点像: class Records < ActiveRecord::Base after_save :record_to_log def record_to_log new_log = LogTable.new new_log.keyword = "keyword" new_log.save end end class记录

我有几个数据库使用
记录
模型。在这个模型的
保存后的回调中,我在
日志表中创建了一个新行。我有点像:

class Records < ActiveRecord::Base
  after_save :record_to_log
  def record_to_log
    new_log = LogTable.new
    new_log.keyword = "keyword"
    new_log.save
  end
end
class记录

但并非所有数据库都有
LogTable
表。我收到一个错误,说明
日志表
不存在。如何防止此错误,如果特定数据库中不存在该表,是否有方法中止保存?

您可以通过以下方式检查该表是否存在:

ActiveRecord::Base.connection.table_exists? 'log_table'
回调可以修改为

after_save :record_to_log, :if => ActiveRecord::Base.connection.table_exists?('log_table')