扩展ActiveRecord :: Base无法正常工作

瑞安·尼尔·梅斯(Ryan-Neal Mes)

我正在尝试使用某些审核功能来扩展ActiveRecord :: Base。当用户保存模型时,我用他们的用户ID更新两列-created_by_user_id和/或updated_by_user_id。user_id来自RequestRegistry。

我就是无法正常工作。请参阅下面的代码。

module AuditTrail
  extend ActiveSupport::Concern

  included do
    before_save :update_audit_fields
  end

  private

  def update_audit_fields
    puts "Updating audit fields" # note this is not being printed out!
    fields_to_update.each do |column|
      column = column.to_s
      # if has_attribute?(column)
      # self[column] = RequestRegistry.current_user.id
      puts "Updating #{column} with user_id some user id"
      # end
    end
  end

  def fields_to_update
    if self.new_record?
      audit_fields
    else
      update_audit_fields
    end
  end

  def audit_fields
    create_audit_fields + update_audit_fields
  end

  def update_audit_fields
    [:updated_by_user_id]
  end

  def create_audit_fields
    [:created_by_user_id]
  end
end

ActiveRecord::Base.send(:include, AuditTrail)


class RequestRegistry
  extend ActiveSupport::PerThreadRegistry

  attr_accessor :current_user
end

当我将其简化为以下代码时。puts语句打印出来,就像在第一段代码中一样,什么都不会打印出来。此外,控制台未在代码中显示任何中断或错误。

module AuditTrail
  extend ActiveSupport::Concern

  included do
    before_save :update_audit_fields
  end

  private

  def update_audit_fields
    puts "Updating audit fields"
  end
end

ActiveRecord::Base.send(:include, AuditTrail)

我尝试缓慢扩展较简单的版本,但是它随机停止工作。

任何想法,将不胜感激。

我建立了你

您重复了方法update_audit_fields的定义。在这种情况下,第二个定义将使用puts覆盖您的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

扩展ActiveRecord :: Base

来自分类Dev

扩展ActiveRecord :: Base

来自分类Dev

今天扩展无法正常工作

来自分类Dev

扩展jQuery无法正常工作...?

来自分类Dev

今天扩展无法正常工作

来自分类Dev

Ruby on Rails ActiveRecord关系无法正常工作?

来自分类Dev

Codeigniter DB语言扩展无法正常工作

来自分类Dev

Chrome扩展程序setTimeout无法正常工作

来自分类Dev

Jasper报告:字体扩展无法正常工作

来自分类Dev

剑道网格扩展行无法正常工作

来自分类Dev

Mcrypt PHP扩展安装无法正常工作

来自分类Dev

与今天扩展共享SQLite无法正常工作

来自分类Dev

APOC扩展程序无法正常工作

来自分类Dev

Coffeescript树扩展类无法正常工作

来自分类Dev

Google Chome扩展-jQuery无法正常工作

来自分类Dev

无法使Backbone Picky正常工作(模型无法正确扩展)

来自分类Dev

非ActiveRecord模型的simple_form验证无法正常工作

来自分类Dev

在Rails插件中扩展核心类无法正常工作

来自分类Dev

UIColor扩展便利初始化无法正常工作

来自分类Dev

Foundation 6按钮组已扩展,无法正常工作

来自分类Dev

菲尔康伏特扩展无法正常工作

来自分类Dev

带步增量的支撑扩展无法正常工作

来自分类Dev

jinja2 autoescape扩展无法正常工作

来自分类Dev

height:自动无法正常工作,div不会随内容扩展

来自分类Dev

1密码应用程序扩展无法正常工作

来自分类Dev

扩展组件上的animateLayout无法正常工作-codenameone

来自分类Dev

Chrome扩展HTML树生成器无法正常工作

来自分类Dev

解析度测试Chrome扩展程序无法正常工作?

来自分类Dev

PHP的Memcache扩展-XAMPP Windows无法正常工作