我刚刚开始接触 Rails 中的关注点,并尝试为 ActiveRecord 类实现简单的日志记录。在那里我想定义应该进入日志并在保存后自动写入日志的字段。
我所拥有的是:
#logable.rb (the concern)
module Logable
extend ActiveSupport::Concern
@field = nil
module ClassMethods
def set_log_field(field)
@feild = field
end
end
def print_log
p "LOGGING: #{self[@index.to_s]}"
end
end
#houses.rb (the model using the concern)
class House < ActiveRecord::Base
include Logable
after_save :print_log
set_log_field :id
end
不幸的是,对 set_log_field 的调用没有效果——或者更确切地说,给定的值没有进入 print_log。我究竟做错了什么?
谢谢你的帮助!