【发布时间】:2015-09-08 20:41:45
【问题描述】:
我刚刚开始接触 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。 我做错了什么?
感谢您的帮助!
【问题讨论】:
-
五年后,不知道您是否注意到您在方法
set_log_field中拼错了@feild。
标签: ruby-on-rails activerecord activesupport-concern