Ruby on rails 如何记录创建操作?
我正在尝试在我的RoR应用程序上创建一个日志记录功能,该功能记录用户在模型中给定控制器上执行的所有操作。我尝试用过滤器实现它,但他们没有解决我的问题,因为他们不允许我正确地记录“创建”操作 “创建”操作很棘手,因为当调用before/after过滤器时,该操作尚未保存,因此,我没有相应的模型id(我需要) 我知道我可以使用“after_commit”,但这将大大增加日志功能的复杂性,因为保存在每个日志条目中的“参数”将向控制器公开,而不是向模型公开Ruby on rails 如何记录创建操作?,ruby-on-rails,Ruby On Rails,我正在尝试在我的RoR应用程序上创建一个日志记录功能,该功能记录用户在模型中给定控制器上执行的所有操作。我尝试用过滤器实现它,但他们没有解决我的问题,因为他们不允许我正确地记录“创建”操作 “创建”操作很棘手,因为当调用before/after过滤器时,该操作尚未保存,因此,我没有相应的模型id(我需要) 我知道我可以使用“after_commit”,但这将大大增加日志功能的复杂性,因为保存在每个日志条目中的“参数”将向控制器公开,而不是向模型公开 有没有一种方法可以动态地向ActiveReco
有没有一种方法可以动态地向ActiveRecord的实例添加“after_commit”筛选器?阅读此内容,我认为这是一个很好的解决方案:阅读此内容,我认为这是一个很好的解决方案:这是我记录的方式,我有一个用户控制器创建这样的操作:
def create
@user = User.new(params[:user])
if @user.save
flash[:notice] = "Welcome, #{@user.username}"
redirect_to(:controller => "users", :action => "home")
session[:id] = @user.id
else
render("home")
end
end
现在我想记录创建了一个用户,然后我这样做:首先在User.rb(model)中创建AuditLogger类: 您还需要在日志目录中创建一个名为my_log.log的文件。希望它能够记录。我知道这不是最好的解决方案,我有更好的方法,但当时我急需一些工作,所以我坚持了下来。
签出这些链接:
这是我的日志记录方式,我有一个用户控制器创建如下操作:
def create
@user = User.new(params[:user])
if @user.save
flash[:notice] = "Welcome, #{@user.username}"
redirect_to(:controller => "users", :action => "home")
session[:id] = @user.id
else
render("home")
end
end
现在我想记录创建了一个用户,然后我这样做:首先在User.rb(model)中创建AuditLogger类: 您还需要在日志目录中创建一个名为my_log.log的文件。希望它能够记录。我知道这不是最好的解决方案,我有更好的方法,但当时我急需一些工作,所以我坚持了下来。
签出这些链接:
def create
@user = User.new(params[:user])
if @user.save
logfile = File.open("#{Rails.root}/log/my_log.log", 'a')
audit_log = AuditLogger.new(logfile)
audit_log.info "#{@user.firstname} was created successfully"
redirect_to(:controller => "users", :action => "home")
else
render("home")
end
end